C# Directory.Exists(Dir)函数未按预期工作

C# Directory.Exists(Dir)函数未按预期工作,c#,directoryinfo,C#,Directoryinfo,在我的代码中,我需要检查目录是否存在,如果不存在,则创建它 不幸的是,即使Directory.Exists返回false,该目录仍然存在,并且抛出了一个execption 以下是我正在使用的代码: if (!Directory.Exists(emailAttachmentsPath)) { Directory.CreateDirectory(emailAttachmentsPath); } 即使该目录存在于磁盘上,该函数返回false,我得到一个错误 我缺少什么吗?来自MSDN 如果

在我的代码中,我需要检查目录是否存在,如果不存在,则创建它

不幸的是,即使
Directory.Exists
返回false,该目录仍然存在,并且抛出了一个execption

以下是我正在使用的代码:

if (!Directory.Exists(emailAttachmentsPath))
{
    Directory.CreateDirectory(emailAttachmentsPath);
}
即使该目录存在于磁盘上,该函数返回false,我得到一个错误

我缺少什么吗?

来自MSDN

如果您没有对该目录的最低只读权限, Exists方法将返回false

如果尝试执行时发生任何错误,Exists方法将返回false 确定指定的文件是否存在。这可能发生在某些情况下 引发异常,例如传递带有无效字符的文件名 字符或字符太多,磁盘出现故障或丢失,或者 调用方没有读取文件的权限


猜一猜,确保
emailAttachmentsPath
不包含文件名。请参见此处:

返回值类型: 系统布尔 如果路径引用现有路径,则为true 目录false如果目录不存在或发生错误 尝试确定指定的文件是否存在时。 如果路径为true 指现有目录;否则,错误


您可以安全地使用
Directory.CreateDirectory
,而无需检查是否存在。它不会覆盖任何内容:“如果目录已经存在,此方法不会创建新目录,但会返回现有目录的DirectoryInfo对象”“引发了哪种类型的异常?猜测一下,存在具有该名称的文件。”。这将导致抛出异常。但是,当然,
Directory.Exists()
将返回false。