2012-08-02 218 views
1

我有一個頁面,我需要顯示存儲在服務器上的圖像。爲了找到這個形象,我使用下面的代碼:System.IO.File.Exists()返回false

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

當我用這個,我得到一個正確的結果作爲文件存在。

但是,當我給的絕對路徑如下圖所示:

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

返回FALSE。

該文件實際存在,但我不知道它爲什麼沒有找到。

回答

2

System.IO.File.Exists的路徑參數是文件系統中實際文件的路徑。

對Server.MapPath()的調用將URI更改爲實際的文件路徑。

所以它按預期工作。

1

不能在File.Exists中使用HTTP路徑。它支持網絡共享和本地文件系統。如果您想在服務器端的Web應用程序中執行此操作。首先使用Server.MapPath()首先查找物理位置,然後使用File.Exists。

閱讀Server.MapPath這裏:http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

EG。

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

if (File.Exists(Server.MapPath(filePath))) 
{ 
    //Do something. 
} 
+0

thnx爲您提供幫助! – priya77 2012-08-02 07:25:12