2009-02-12 56 views
10

是否有標準函數來檢查指定的目錄是否有效?C#檢查文件目標是否有效

我問的原因是,我收到一個用戶的絕對目錄字符串和文件名,我想理智檢查位置以檢查它是否有效。

回答

28

對於文件

File.Exists(string) 

對於目錄

Directory.Exists(string) 

注: 如果您正在重用的對象,你應該考慮使用FileInfo類VS靜態文件類。 File類的靜態方法每次都會進行不必要的安全檢查。
FileInfo - DirectoryInfo - File - Directory

FileInfo fi = new FileInfo(fName); 
if (fi.Exists) 
    //Do stuff 

OR

DirectoryInfo di = new DirectoryInfo(fName); 
if (di.Exists) 
    //Do stuff 
9
if(System.IO.File.Exists(fileOrDirectoryPath)) 
{ 
    //do stuff 
} 

這應該是訣竅!

+0

更新 - 我錯誤地記住了命名空間。 – xan 2009-02-12 12:51:18

0

上一個答案在檢查給定的文件或目錄是否存在方面是正確的。 Path類還包含許多可用於驗證或操作路徑的各種組件的函數。

2

如果它不能成爲一個新的目錄,你可以檢查它是否存在。

它看起來像你也可以使用Path.GetInvalidPathChars來檢查無效字符。

2

你也可能要考慮本身就是一個有效的路徑是不是100%有效。如果用戶提供了C:\ windows \ System32或CD驅動器,操作系統在嘗試寫入時可能會引發異常。