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

时间:2012-07-10 22:30:09

标签: 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"); 
}

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

1 个答案:

答案 0 :(得分:4)

试试这个:

  1. 打开命令提示符
  2. 输入命令cd c:\\\\\\\\\
  3. 你会发现它完全可以接受。

    另一项测试:

    1. 打开命令提示符
    2. 尝试cd c:\\\\\\\\\\\\temp
    3. 您现在将位于c:\ temp目录中,假设您有一个。

      最后一个:

      1. 打开命令提示符
      2. 尝试cd c:\\\\\\\\\\\\\inetpub\\\\\\\\\\\\\\\\\\\\\logs
      3. 您现在位于c:\ inet \ logs目录中,假设您有一个。

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

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