2012-07-10 38 views
-1

我使用Directory.Exists()來檢查文件夾的存在,並遇到該方法的失敗。我的命令是:Directory.Exists()無法識別不存在的文件夾(反斜槓錯誤)

if (Directory.Exists(myFolder) == false) 
{ 
    MessageBox.Show(myFolder, "Invalid Log Folder path", MessageBoxButtons.OK, MessageBoxIcon.Hand); 
} 

if (Directory.Exists(myFolder) == true) 
{ 
    MessageBox.Show(myFolder, "Valid Folder path"); 
} 

當MyFolder文件是C:\Documents and Settings\UserID\My Documents返回TRUE

當myFolder是C:\Documents and Settings\xxx\My Documents時,它返回FALSE(因爲xxx不存在)。

但是,當myFolder爲C:\\Documents and Settings\UserID\My Documents時,它也會返回TRUE

C:旁邊的雙斜槓必須使測試無效。但是,Directory.Exists()未能識別。

隨着更多\它仍然遇到同樣的問題。

我只是不明白如何發生這種故障。我使用VS2008和.NET 3.5。

+0

賬號是否存在UserID? 'myFolder'如何初始化?那些路徑是什麼字符串包含的?這是你在字符串文字中輸入的內容嗎?你所問的不是很清楚。 – 2012-07-10 22:36:17

+0

'它也返回TRUE.'似乎你解決了你自己的問題... – 2012-07-10 22:37:33

+1

'myFolder'是一個字符串文字嗎?如果是這樣,你是否使用@前綴? – 2012-07-10 22:39:44

回答

4

試試這個:

  1. 打開命令提示符
  2. 輸入命令cd c:\\\\\\\\\

你會發現這是完全可以接受的。

另一項測試:

  1. 打開命令提示符
  2. 嘗試cd c:\\\\\\\\\\\\temp

現在,您會在c:\ temp目錄,假設你有一個。

最後一個:

  1. 打開命令提示符
  2. 嘗試cd c:\\\\\\\\\\\\\inetpub\\\\\\\\\\\\\\\\\\\\\logs

您現在在c:\ INET \ logs目錄,假設你有一個。

看來您對Directory.Exists()方法的行爲有不正確的期望。

任何數目的'\'在命令和這些方法中被解釋爲單個'\',並且是完全可接受的輸入。

+0

但這不是Windows資源管理器的操作方式。 – CaTx 2012-07-10 22:58:15