C# 如何检查web服务器上是否存在文件

C# 如何检查web服务器上是否存在文件,c#,asp.net,C#,Asp.net,我在服务器上存储了一个文件,我填充的网页取决于文件是否存在的fatc 如何测试该文件在服务器上是否可用? 该文件在网页上显示为: 我必须测试这个文件的存在,如果它是可用的,我会显示一个链接,否则我想隐藏链接 服务器的实际路径是 //main.server.com/inetpub/wwwroot/PGT/Reports/ObjectsReport.xml 但我无法访问网络上的服务器(因此也无法访问文件)。我只能通过网页访问它。有没有办法测试服务器是否有文件或没有显示链接?(hlObjectsRe

我在服务器上存储了一个文件,我填充的网页取决于文件是否存在的fatc

如何测试该文件在服务器上是否可用? 该文件在网页上显示为:

我必须测试这个文件的存在,如果它是可用的,我会显示一个链接,否则我想隐藏链接

服务器的实际路径是 //main.server.com/inetpub/wwwroot/PGT/Reports/ObjectsReport.xml 但我无法访问网络上的服务器(因此也无法访问文件)。我只能通过网页访问它。有没有办法测试服务器是否有文件或没有显示链接?(hlObjectsReport.Visible=false;)

我尝试使用以下方法:

urivalidateduri; TryCreate(Uri,UriKind.RelativeOrAbsolute,out validatedUri)

但即使文件不在那里,它也会返回一个有效的地址

谢谢 Tony.

使用System.IO.File.Exists()

如果您不确定物理路径,可以用以下内容替换上面的[path goes here]:

map路径(/PGT/Reports/ObjectsReport.xml)

()

使用System.IO.File.Exists()

如果您不确定物理路径,可以用以下内容替换上面的[path goes here]:

map路径(/PGT/Reports/ObjectsReport.xml)


()

为什么不使用文件。存在于您的codebehind中?为什么不使用文件。存在于您的codebehind中?如果您提到Server.MapPath,我会给您+1:):)这是一个强大的力量。我不知道如何将/PGT/Reports/ObjectsReport.xml转换为c:\inetpub/wwwroot/PGT/Reports/ObjectsReport.xml。Server.MapPath(/PGT/Reports/ObjectsReport.xml)返回的路径“/PGT/Reports/ObjectsReport.xml”映射失败。我不想硬编码路径的其余部分,因为我还有其他类似于此的页面和链接。如果路径始终是绝对路径,则不需要使用mappath。您只需指定c:\inetpub\wwwroot\PGT\Reports\ObjectsReport.xml-请稍候-这是在运行代码的同一台服务器上,对吗?如果没有,情况就会改变。如果这是一个托管场景,那么在工作中可能会有各种各样的活动扳手。我会用另一种方法,它会完全改变我的答案。在托管环境中,可能有多个服务器以您不知道的方式群集。@tony-如果文件位于不同的web服务器上,或者您完全找不到路径,但知道URL,则可以使用以下答案:如果您提到server.MapPath,我会给你+1:):)这个原力很强。我不知道如何将/PGT/Reports/ObjectsReport.xml转换为c:\inetpub/wwwroot/PGT/Reports/ObjectsReport.xml。Server.MapPath(/PGT/Reports/ObjectsReport.xml)返回的路径“/PGT/Reports/ObjectsReport.xml”映射失败。我不想硬编码路径的其余部分,因为我还有其他类似于此的页面和链接。如果路径始终是绝对路径,则不需要使用mappath。您只需指定c:\inetpub\wwwroot\PGT\Reports\ObjectsReport.xml-请稍候-这是在运行代码的同一台服务器上,对吗?如果没有,情况就会改变。如果这是一个托管场景,那么在工作中可能会有各种各样的活动扳手。我会用另一种方法,它会完全改变我的答案。在托管环境中,可能有多台服务器以您不知道的方式群集。@tony-如果文件位于其他web服务器上,或者您完全找不到路径,但知道URL,则可以使用以下答案:
if(System.IO.File.Exists([path goes here]))
{
  // do something
}