Fichier existe sur le serveur à l'aide de C#, asp.net

Je veux vérifier si un fichier existe sur le serveur de disque et je suis à l'aide de code suivant

if (File.Exists(Server.MapPath("~/Jaram Images/") + Path.GetFileName(product.Pic_Url2)))
                                            {
                                                WriteError("File  exist!");

                                                //PdfProdCell = new PdfPCell(iTextSharp.text.Image.GetInstance(Server.MapPath("~/Jaram Images/") + Path.GetFileName(product.Pic_Url2)), true);
                                            }
                                            else
                                                WriteError(Server.MapPath("~/Jaram Images/") + " File doesn't exist!");

mais j'obtiens cette erreur:

public static void WriteError(string errorMessage)
{
    try
    {
        string path = "~/Jaram PDF/PDFS/" + DateTime.Today.ToString("dd-mm-yy") + ".txt";
        if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
        {
            File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
        }
        using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
        {
            w.WriteLine("\r\nLog Entry : ");
            w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
            string err = "Error in: " + System.Web.HttpContext.Current.Request.Url.ToString() +
                          ". Error Message:" + errorMessage;
            w.WriteLine(err);
            w.WriteLine("__________________________");
            w.Flush();
            w.Close();
        }
    }
    catch (Exception ex)
    {
        WriteError(ex.Message);
    }

}

Log Entry : 
05/03/2012 15:50:51
Error in: http://localhost/WebStore/AdminNewAccount.aspx?role=+Administrator. Error Message:C:\inetpub\wwwroot\WebStore\Jaram Images\ File doesn't exist!

ma fonction log aime ce

  • Le fichier existe dans Server.MapPath("~/Jaram Images/") + Path.GetFileName(product.Pic_Url2)) ... ?
  • d'abord ce n'est pas le fait d'erreur que vous obtenez à partir d'exception. Deuxièmement, vous carte 3 fois le même fichier, pourquoi ne pas la carte à la première fois. Aussi le fichier qui n'existe pas est en fait un répertoire que vous tapez. Et enfin, déboguer votre code pour voir quel est le vrai problème
  • Pas sûr de ce que le problème est que vous êtes rencontrez - vous avez beaucoup de code, et très peu de message d'erreur. Aléatoire commentaire, vous pouvez l'examiner à l'aide d'une véritable bibliothèque de journalisation au lieu de rouler votre propre. Je suggère de NLog ou (dans une moindre mesure). log4net. Ils sont super facile à utiliser, super configurable, et vont être beaucoup plus tolérants aux pannes que ce que vous écrivez sur votre propre (sauf si vous faites beaucoup de travail de votre code d'enregistrement).
  • oui, le fichier n'existe pas. Je veux éviter cette erreur, si le fichier n'existe pas, c'est pourquoi j'ai demandé Si la condition.
  • Comment puis-je vérifier si un fichier existe, de sorte que je peux montrer l'image sinon, l'ignorer ?
  • Essayez Path.Combine(Server.MapPath("~/Jaram Images/"), Path.GetFileName(product.Pic_Url2) (et l'enregistrer dans une variable et le passer au lieu de l'appeler MapPath nouveau)
  • Que faire Si le fichier n'existe pas ?
  • Je l'ai essayé mais Ça ne marche pas!
  • Vous êtes déjà vérifier si le fichier existe, si ce n'est pas elle passe à travers votre clause else qui est ensuite lever une erreur, donc je ne pas vraiment comprendre ce que votre question est. Gérer le cas où le fichier n'existe pas dans votre instruction if et ne rien faire dans votre clause else.
  • J'ai ajouté de la clause else juste pour le test. Même Si je le supprime, je reçois le message d'erreur. Même Si j'essaie if (Fichier.Existe(Serveur De.MapPath("~/Jaram Images/")), je reçois le même message d'erreur.
  • (Fichier.Existe(Serveur De.MapPath("~/Jaram Images/")) échouera comme c'est un répertoire pas un fichier à partir de la documentation "Si le chemin décrit un répertoire, cette méthode retourne false,"
  • J'ai enlevé la partie, maintenant comment puis-je vérifier si le fichier existe dans Si la condition ?
  • Vous n'êtes pas vérifier un fichier que vous êtes en contrôle d'un répertoire de sorte qu'il échouera toujours (vérifiez votre message d'erreur) - debug et vérifier ce Chemin.GetFileName(produit.Pic_Url2) est de retour - je suppose qu'il va être null ou vide
  • J'obtiens cette erreur: Message d'Erreur:impossible de trouver le fichier 'C:\inetpub\wwwroot\JaramWebStore\Jaram Images\201031 et 201059.jpg'. Peut-être l'espace de nom est le problème ? Aussi 201031 et 201059.jpg n'existent pas c'est pourquoi je suis en train de tester Si