2010-06-05 124 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