【发布时间】:2012-07-10 12:00:01
【问题描述】:
我正在使用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() 没有意识到这一点。
使用更多\ 仍然会遇到同样的问题。
我只是无法理解这种故障是如何发生的。我正在使用 .NET 3.5 的 VS2008。
【问题讨论】:
-
账号
UserID是否存在?myFolder是如何初始化的?这些路径是字符串包含的吗?那是您在字符串文字中键入的内容吗?你问的不是很清楚。 -
it also returns TRUE.看来您解决了自己的问题... -
myFolder是字符串文字吗?如果是这样,您是否使用 @ 前缀? -
双反斜杠在技术上并非无效。实际上,这意味着您在路径中添加相对路径到根目录。就像
..表示直接父母,或者.表示自己。 `` 表示根 -
“Directory.Exists() 无法识别不存在的文件夹” - 我想它会...