0

我像这样在数据库表中存储了一个文件路径../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,但服务器具有相同的文件夹。

请帮我解决这个问题。

4

3 回答 3

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);
}
于 2013-05-29T05:03:02.340 回答
1

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

无论如何,检查文件是否存在非常简单:

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

}
于 2013-05-29T05:01:00.210 回答
0

首先,您必须使用选择查询从数据库中获取文件路径(文件名),然后将该路径与 file.exists 一起使用。

例子:

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

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

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

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

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

谢谢

于 2013-05-29T04:58:45.603 回答