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