當文件實際存在時,File.Exists返回false。當文件存在時,ASP.NET File.Exists返回false
我知道如果沒有讀取權限,它會返回錯誤,但我似乎無法正確理解。
更多信息:
我的FTP目錄的組織,像這樣:
Root
ImageSite
ImageDirectory
MySite
My .aspx.cs File that's calling File.Exists()
我試着上傳.aspx.cs用相同的FTP用戶帳戶ImageSite & ImageDirectory文件。沒有幫助。
我也嘗試用反斜槓替換正斜線,只是爲了確保。
這是我的代碼 - 我將文件路徑硬編碼到圖像目錄的完整ftp路徑。
string serverUrl [email protected]"\\fs4-n01\blah\blah\blah\ImageSite.com\web\content\Images\" + product.ImageUrl;
bool exists = File.Exists(serverUrl);
我也想到了冒充。我已經在我的web.config中使用了一個身份模擬,它似乎並沒有讓我使用兩者,所以我把它放在我的代碼文件所在的子目錄下,標記下。但它似乎沒有這樣做。 (無論哪種方式,文件的所有者與圖像目錄相同,如我所述)。
我正在使用ASP.NET 4.0。
任何想法,將不勝感激。
由url看起來像你使用samba(文件共享),而不是ftp。那是對的嗎?你真的可以從代碼中的路徑在資源管理器中打開文件嗎?你的代碼也在不同的用戶下運行(也許該用戶無法訪問該文件共享)? – csauve
這是否說明站點運行(請參閱應用程序池標識)是否有權讀取目錄? – Oded
不確定,我絕對可以通過FTP訪問它。我從使用File.GetDirectoryName(Server.MapPath(「〜」))獲取該URL ... – Rivka