Comment faire pour vérifier si le fichier existe dans ASP.NET MVC 4
Je suis en train de travailler sur un ASP.NET MVC 4
application. J'autorise les utilisateurs à télécharger les fichiers, mais je veux les enregistrer avec un nom différent sur le serveur j'ai donc créé la méthode d'assistance qui doit retourner GUID
à être utilisé. Même si il ne sera probablement jamais arriver, encore je veux vérifier si j'ai un fichier avec le même GUID
nom j'ai donc ce code :
public static string GetUniqueName(string pathToFile)
{
bool IsUnique = false;
string guid = null;
while (!IsUnique)
{
guid = Guid.NewGuid().ToString("N");
var path = System.IO.Path.Combine(pathToFile, "login.jpg");
if (!System.IO.File.Exists(path))
{
IsUnique = true;
}
}
return guid;
}
comme vous pouvez le voir, le nom du fichier est codé en dur juste pour des fins de test, parce que je sais que c'est le fichier.
Pour enregistrer le fichier j'utilise ceci:
var path = System.IO.Path.Combine(Server.MapPath("~/Content/NewsImages"), fileName);
et qu'il fonctionne correctement. Alors, quand j'ai essayé d'appeler ma méthode statique je passe le arbument comme ceci:
string test = Helper.GetUniqueName("~/Content/NewsImages");
mais alors dans le debug, j'ai vu que
System.IO.Path.Combine(pathToFile, "login.jpg");
retourne ~/Content/NewsImages\\login.jpg
j'ai donc décidé de changer l'argument que je passe à:
string test = Helper.GetUniqueName("~\\Content\\NewsImages");
qui se traduit aujourd'hui dans ~\\Content\\NewsImages\\login.jpg
qui semble très bien, mais alors dans:
if (!System.IO.File.Exists(path))
{
IsUnique = true;
}
Je passe le vérifier, même si je sais qu'un tel fichier existe dans le répertoire que je veux vérifier. Comment puis-je résoudre ce problème?
OriginalL'auteur Leron | 2013-12-05
Vous devez vous connecter pour publier un commentaire.
Lors de l'appel de la méthode d'assistance que vous devez utiliser Serveur.MapPath, cela vous permettra de transformer à partir d'un chemin d'accès virtuel à un chemin d'accès physique par exemple
OriginalL'auteur James