我被徹底糊塗了這裏的鄉親,File.Exists()返回false,但不是在調試
我的代碼拋出一個異常,因爲File.Exists()返回false
public override sealed TCargo ReadFile(string fileName)
{
if (!File.Exists(fileName))
{
throw new ArgumentException("Provided file name does not exist", "fileName");
}
的Visual Studio在throw語句中打破,我立即在即時窗口中檢查File.Exists(fileName)
的值。它返回true
。當我將斷點拖回到if語句並再次執行時,它會再次拋出。
fileName是文件的絕對路徑。我沒有創建該文件,也沒有寫入(它一直存在)。如果我在記事本中將路徑粘貼到打開的對話框中,它會毫無問題地讀取文件。
代碼在後臺工作中執行。這是我能想到的唯一複雜因素。我肯定該文件尚未打開,無論是在工作線程還是其他地方。
這是怎麼回事?
什麼是路徑? – SLaks 2010-03-07 19:19:37
只是'文件。存在(fileName)'部分返回true或整個'!File.Exists(fileName)'語句返回true? – animuson 2010-03-07 19:20:00
如果你在沒有後臺工作進程的情況下運行它 - 假設它與你所說的文件沒有關係,它的行爲如何? – 2010-03-07 19:21:51