【问题标题】:System.IO.File.Exists() returns falseSystem.IO.File.Exists() 返回 false
【发布时间】:2016-01-15 23:34:54
【问题描述】:

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

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

当我使用它时,我会得到正确的结果,因为文件存在。

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

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

它返回 false。

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

【问题讨论】:

    标签: asp.net-mvc-3 file-io


    【解决方案1】:

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

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

    所以它按预期工作。

    【讨论】:

      【解决方案2】:

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

      在此处了解Server.MapPathhttp://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-04-17
        • 2023-04-10
        • 2019-06-27
        • 1970-01-01
        • 1970-01-01
        • 2014-10-18
        • 2015-08-02
        • 2012-05-17
        • 2013-10-26
        相关资源
        最近更新 更多