2009-08-29 46 views
14

嘿,這將是那些愚蠢的問題之一。我正試圖在本地系統上找到一個文件,並且我一直在收到FileNotFoundException文件未找到例外..但它的存在

有人讓我直接請:)

if(File.Exists(@"C:\logs\hw-healthways-prod_2009-08-26.tar")) 
{ 
    Console.WriteLine("Yay"); 
} 
else 
{ 
    throw new FileNotFoundException(); 
} 

試圖將文件移動到相同的位置執行的應用程序,並做了以下內容:

if(File.Exists("hw-healthways-prod_2009-08-26.tar")) 

同樣的事情。

然後我做了一個隨機的txt文件,並停放在那裏過。「me.txt」

和它的作品?所以你的文件名稱是問題?

+0

如果在開始 - >運行框中鍵入「C:\ logs \ hw-healthways-prod_2009-08-26.tar」,會發生什麼情況? – 2009-08-29 00:59:38

+0

如果嘗試使用File.OpenRead(...)顯式打開文件,會出現什麼錯誤?也可能不是這種情況,但我認爲如果這是一個目錄,而不是一個文件,然後File.Exists將返回false – 2009-08-29 01:01:17

+0

哈哈沒有找到它..但我friggen從文件的屬性複製名稱和位置。不知道怎麼回事。 – Nick 2009-08-29 01:02:02

回答

11

試試做Directory.GetFiles(@"C:\logs")。可能有問題的文件有奇怪的字符,通過Windows資源管理器(大概是從何處讀取「文件屬性」的方式)解釋爲單向字符,而是由.NET Framework以不同的方式解釋。如果文件名中包含UTF-8字符(可能是連字符?),就會發生這種情況。

+0

更改文件的名稱似乎是票。我正在調查。謝謝 – Nick 2009-08-29 01:15:32

+3

+1由於這個問題困擾了我幾個小時。由於我在Windows資源管理器中創建了隱藏文件擴展名的選項,因此我的文件實際上被稱爲「file1.html.txt」,而不是「file1.html」。 – Remotec 2013-01-26 16:50:08

0

您可能想檢查您的文件權限。您的計算機可能沒有該文件的權限。

+0

嗯..我不這麼認爲。我可以手動打開它。 – Nick 2009-08-29 01:07:58

-6

C:\ logs \ hw-healthways-prod_2009-08-26.tar應該是C:\\ logs \\ hw-healthways-prod_2009-08-26.tar。 \意味着下一個字符是一個轉義字符。

+7

當字符串以@字符爲前綴時不適用。 – 2009-08-29 01:18:56

7

可以是文件的名稱是 「HW-Healthways調查,prod_2009-08-26 .tar.tar」,而不是 「HW-Healthways調查,prod_2009-08-26 的.tar」,我有這個問題,因爲默認情況下,擴展文件隱藏在窗口上