Directory.Exists() 无法识别不存在的文件夹(反斜杠错误)

CaT*_*aTx 0 c# 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"); 
}
Run Code Online (Sandbox Code Playgroud)

当 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。

Eth*_*gon 5

尝试这个:

  1. 打开命令提示符
  2. 输入命令cd c:\\\\\\\\\

你会发现这是完全可以接受的。

另一个测试:

  1. 打开命令提示符
  2. 尝试cd c:\\\\\\\\\\\\temp

现在您将位于 c:\temp 目录(假设您有该目录)。

最后一个:

  1. 打开命令提示符
  2. 尝试cd c:\\\\\\\\\\\\\inetpub\\\\\\\\\\\\\\\\\\\\\logs

您现在位于 c:\inet\logs 目录(假设您有该目录)。

您似乎对该Directory.Exists()方法的行为方式有不正确的期望。

任何数量的“\”在命令和这些方法中都会被解释为单个“\”,并且是完全可接受的输入。