如果特定路径是目录,我如何签入C#?
答案 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);
如果路径不存在,则无法判断路径是文件还是目录,因为它可能是。