0

我正在使用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"); 
}

当 myFolderC:\Documents and Settings\UserID\My Documents返回时TRUE

当 myFolderC:\Documents and Settings\xxx\My Documents返回时FALSE(假设xxx不存在)。

但是,当 myFolder 是时,C:\\Documents and Settings\UserID\My Documents它也会返回TRUE.

旁边的双反斜杠C:必须使测试无效。然而,Directory.Exists()未能认识到这一点。

随着更多\它仍然遇到同样的问题。

我只是无法理解这种失败是如何发生的。我正在使用 .NET 3.5 的 VS2008。

4

1 回答 1

5

尝试这个:

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

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

另一个测试:

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

您现在将位于 c:\temp 目录中,假设您有一个。

最后一个:

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

您现在位于 c:\inet\logs 目录中,假设您有一个。

看来您对该Directory.Exists()方法的行为方式有错误的期望。

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

于 2012-07-10T22:42:35.863 回答