文件存在于使用 C# 的服务器上,asp.net

本文关键字:asp net 服务器 存在 于使用 文件 | 更新日期: 2023-09-27 18:33:13

我想检查服务器磁盘上是否存在文件,并且我使用以下代码

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!

我的日志函数喜欢这个

文件存在于使用 C# 的服务器上,asp.net

因此,据我了解,您会收到"错误",因为您专门告诉代码即使在成功时也要编写错误。 尝试使代码更易于阅读。 我设置了一个简单的页面来测试您遇到的问题。 在 HTML 中,我有:

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

然后,以下代码位于代码隐藏中。 首先,它检查以确保文件是否存在,它将图像的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
        }
    }

对我来说,当文件存在时,图像会显示在网页上。 当文件不存在时,没有可用的图像。 我注释掉了一些可能对您有意义的其他选项。 "图片不可用.jpg"可能是可用于显示图像不可用的库存图像。

如果仍然遇到问题,请确保在代码中放置断点并查看实际发生的情况。