C# 路径是目录吗?

C# 路径是目录吗?,c#,io,C#,Io,如果特定路径是目录,如何在C中进行检查?如果路径存在,可以使用:来判断它是文件还是目录 bool existsAndIsDirectory = Directory.Exists(path); 如果路径不存在,则无法判断路径是文件还是目录,因为它可能是文件或目录。请尝试以下操作 bool isDir = Directory.Exists(somePath) 请注意,这并不能真正告诉您是否存在目录。它告诉您,在最近的某个时间点上存在一个目录,当前进程对该目录有一定程度的访问权。当您尝试访问目录

如果特定路径是目录,如何在C中进行检查?

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

bool existsAndIsDirectory = Directory.Exists(path);
如果路径不存在,则无法判断路径是文件还是目录,因为它可能是文件或目录。

请尝试以下操作

bool isDir = Directory.Exists(somePath) 
请注意,这并不能真正告诉您是否存在目录。它告诉您,在最近的某个时间点上存在一个目录,当前进程对该目录有一定程度的访问权。当您尝试访问目录时,它可能已经被删除或以某种方式更改,从而阻止您的进程访问它

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

if ( Directory.Exists(somePath) ) { 
  var files = Directory.GetFiles(somePath); 
}
我最近写了一篇关于这个主题的博客,如果你使用像Directory.Exists这样的方法来做决定,那么值得一读

    • 您还可以:

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

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

      bool existsAndIsDirectory = Directory.Exists(path);