-6

サーバーのディスクにファイルが存在するかどうかを確認したいのですが、次のコードを使用しています

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!");

しかし、私はこのエラーが発生しています:

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!

私のログ関数はこれが好きです

4

1 に答える 1

2

したがって、私が理解していることから、成功した場合でもエラーを書き込むようにコードに具体的に指示するため、「エラー」が発生します。コードを読みやすくするようにしてください。私はあなたが抱えている問題をテストするために簡単なページを設定しました。HTMLには次のものがあります。

<body>
<form id="form1" runat="server">
<div>
    <asp:Image runat="server" ID="TestPicture" />
</div>
</form>
</body>

次に、次のコードがCodeBehindにあります。まず、ファイルが存在するかどうかを確認し、画像のURLをパスに設定します。ファイルが存在しない場合は、画像のURLを「」に設定するだけです。

    protected void Page_Load(object sender, EventArgs e)
    {
        string serverPath = Server.MapPath("~/Test/") + Path.GetFileName("~/Test/TestImg.jpg");
        string imgUrl = "~/Test/TestImg.jpg";
        if (File.Exists(serverPath))
        {
            TestPicture.ImageUrl = imgUrl;
        }
        else
        {
            TestPicture.ImageUrl = "";
            //TestPicture.Visible = false;
            //TestPicture.ImageUrl = "Picture Not Available.jpg";

            //or do other error checking here
        }
    }

私の場合、ファイルが存在する場合、画像はWebページに表示されます。ファイルが存在しない場合、使用可能なイメージはありません。私はあなたにも意味があるかもしれない他のいくつかのオプションをコメントアウトしました。「PictureNotAvailable.jpg」は、画像が利用できないことを示すために使用できるストック画像である可能性があります。

それでも問題が解決しない場合は、コードにブレークポイントを設定して、実際に何が起こっているかを確認してください。

于 2012-05-07T23:24:25.517 に答える