2009-12-13 125 views

回答

36

請嘗試以下

bool isDir = Directory.Exists(somePath) 

請注意,這並不是真正的告訴你,如果一個目錄,雖然存在。它告訴你一個目錄存在於最近的某個時刻,當前進程有一定的訪問權限。當您嘗試訪問該目錄時,它可能已被刪除或以某種方式更改,以阻止您的進程訪問它。

總之,第二行很可能因爲目錄不存在而失敗。

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

我寫了一篇關於這一主題的博客條目最近值得一讀,如果你使用的是像Directory.Exists方法來做出決定

6

如果路徑存在,則可以使用Directory.Exists來判斷它是文件還是目錄。

bool existsAndIsDirectory = Directory.Exists(path); 

如果路徑不存在,那麼有沒有辦法判斷路徑是一個文件或目錄,因爲它可以是。

29

你也可以做:

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

這實際上就是答案! – nawfal 2012-03-05 11:00:30

7

您還可以檢查文件att通過File.GetAttributes()(當然,只有在文件/目錄存在時)纔會受到限制。 FileAttributes類型具有名爲Directory的值,該值指示路徑是否是目錄。