在我的代码中,我需要检查目录是否存在,如果不存在,请创建它。
不幸的是,即使Directory.Exists
返回false,该目录仍然存在,并且会抛出一个execption。
这是我正在使用的代码:
if (!Directory.Exists(emailAttachmentsPath))
{
Directory.CreateDirectory(emailAttachmentsPath);
}
即使该目录存在于磁盘上,该函数也会返回false并出现错误。
我有什么遗失的吗?
感谢 菲利普
答案 0 :(得分:4)
猜测,确保emailAttachmentsPath
不包含文件名。请参阅此处的doc:
返回值类型: System.Boolean 如果path指的是现有的,则返回true 目录; false 如果目录不存在或发生错误 在尝试确定指定的文件是否存在时。 如果路径是真的 指现有目录;否则,错误。
答案 1 :(得分:1)
来自MSDN http://msdn.microsoft.com/en-us/library/system.io.directory.exists%28v=vs.110%29.aspx
如果您没有对目录的最低只读权限, Exists方法将返回false。
如果在尝试时发生任何错误,则Exists方法返回false 确定指定的文件是否存在。这种情况可能发生 引发异常,例如传递带有无效的文件名 字符或字符太多,磁盘失败或丢失,或者是否 调用者没有读取文件的权限。