1

我有一个页面,我需要在其中显示存储在服务器上的图像。要找到该图像,我使用以下代码:

 if (System.IO.File.Exists(Server.MapPath(filepath)))

当我使用它时,由于文件存在,我得到了正确的结果。

但是当我给出如下绝对路径时:

 if (System.IO.File.Exists("http://myserever.address/filepath"))

它返回假。

该文件实际存在于那里,但我不知道为什么找不到它。

4

2 回答 2

2

您不能在 File.Exists 中使用 HTTP 路径。它支持网络共享和本地文件系统。如果您想在服务器端的 Web 应用程序中执行此操作。首先使用Server.MapPath()先找到物理位置,然后使用 File.Exists。

在这里阅读:http Server.MapPath: //msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

例如。

string filePath = ResolveUrl("~/filepath/something.jpg");

if (File.Exists(Server.MapPath(filePath)))
{
     //Do something. 
}
于 2012-08-02T07:20:45.270 回答
2

System.IO.File.Exists 的路径参数是文件系统中实际文件的路径。

对 Server.MapPath() 的调用将 URI 更改为实际的文件路径。

所以它按预期工作。

于 2012-08-02T07:22:10.440 回答