2010-06-05 101 views
1

我有一個函數從文本文件中讀取一堆路徑值(8或9)。它稍後在應用程序中使用這些路徑來讀取文件。什麼是檢查這些文件路徑有效性的最佳方法。我可以做某種單一的捕獲嗎?捕獲無效的文件路徑

回答

0

您可以使用File.Exists和/或Directory.Exists是路徑可以是一個目錄。

static void Main(string[] args) 
{ 
    List<string> paths = new List<string>{"C:\\path1.txt", "c:\\path2.txt"}; 
    bool allValid = paths.All(path=>File.Exists(path)); 
} 
+1

如果某人鎖定了文件,'File.Exists'也會返回'false'。 – 2010-06-05 03:49:54

+0

@John Saunders謝謝你指出,事實確實如此。 – 2010-06-05 04:00:21

2

System.IO.Directory.Exists(字符串路徑) System.IO.File.Exists(字符串路徑)

1

我只想用File.Exists在一個循環,很簡單性和可讀性。有更新潮的方法嗎?大概。

0

也許正則表達式可能是您的一個選擇,至少在Windows環境中。這樣可以避免像File.Exists那樣訪問磁盤。來源:http://www.csharp411.com/check-valid-file-path-in-c/

public bool IsValidPath(string path) 
{ 
    Regex r = new Regex(@"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$"); 
    return r.IsMatch(path); 
} 
0

考慮使用System.IO.Path.GetFullPath方法。像Path類的大多數成員一樣,它會驗證您傳入的路徑,並在路徑無效時拋出ArgumentException