使用c#检查文件是否存在

时间:2013-05-29 04:49:39

标签: c# asp.net

我将文件路径存储在数据库表中,如../Document/5292013/cal.png。现在我想检查文件是否存在于服务器文件夹中。我使用下面的代码来检查这个,但它对我不起作用。

 if (File.Exists(Server.MapPath(root.GetElementsByTagName("FLD_DOC_ID")[0].InnerText)))
 {
     proof.HRef = Server.MapPath(root.GetElementsByTagName("FLD_DOC_ID")[0].InnerText);
 }

现在我使用watch File.Exists(Server.MapPath("Document")) //Returns false检查,但服务器具有相同的文件夹。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:4)

在使用MapPath之前,您需要将文件名转换为虚拟表单。您必须知道需要如何完成的具体细节。例如:

string fileName = root.GetElementsByTagName("FLD_DOC_ID")[0].InnerText;
fileName = fileName.Replace("..", "~");
if (File.Exists(Server.MapPath(fileName))
{
    // you probably do not want MapPath here:
    //proof.HRef = Server.MapPath(root.GetElementsByTagName("FLD_DOC_ID")[0].InnerText);
    proof.HRef = System.Web.VirtualPathUtility.ToAbsolute(fileName);
}

答案 1 :(得分:1)

尝试打印出Server.MapPath(root.GetElementsByTagName(“FLD_DOC_ID”)[0] .InnerText) 它可能指向错误的路径或其他东西

任何方式,检查文件是否存在都非常简单:

if(File.Exists(the file path))
{

}

答案 2 :(得分:0)

首先,您必须使用select query从数据库获取filepath(filename),然后将该路径与file.exists一起使用。

示例:

首先从数据库获取文件名或文件路径,然后

如果您只获得文件名,请使用以下代码:

if(File.Exits(Server.MapPath("Document/5292013/"+filename)))
{
}

或 如果你只得到文件路径,那么使用下面的代码:

if(File.Exits(Server.MapPath("filename")))
{
}

由于