路径是目录吗?

时间:2009-12-13 16:29:14

标签: c# io

如果特定路径是目录,我如何签入C#?

4 个答案:

答案 0 :(得分:37)

尝试以下

bool isDir = Directory.Exists(somePath) 

请注意,这并不能真正告诉您目录是否存在。它告诉您最近过去某个时刻存在一个目录,当前进程有一定程度的访问权限。当您尝试访问目录时,它可能已经以某种方式被删除或更改,以防止您的进程访问它。

简而言之,第二行完全有可能失败,因为该目录不存在。

if ( Directory.Exists(somePath) ) { 
  var files = Directory.GetFiles(somePath); 
}

如果您使用Directory.Exists等方法做出决定,我最近写了一篇关于此主题的博客文章,值得一读。

答案 1 :(得分:30)

你也可以这样做:

FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere");
if((attr & FileAttributes.Directory) == FileAttributes.Directory)
{
    //it's a directory
}

答案 2 :(得分:7)

您还可以通过File.GetAttributes()检查文件属性(当然,仅当文件/目录存在时)。 FileAttributes类型的值为Directory,表示路径是否为目录。

答案 3 :(得分:6)

如果路径存在,您可以使用:Directory.Exists来判断它是文件还是目录。

bool existsAndIsDirectory = Directory.Exists(path);

如果路径不存在,则无法判断路径是文件还是目录,因为它可能是。