我有一个方法来获取特定文件的文件夹路径:
string filePath = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.MyDocuments), "file.txt");
后来,我用它来读取文件中的文本:
StreamReader rdr = new StreamReader(filePath); // "C:\Users\<user>\Documents\file.txt"
string myString = rdr.ReadToEnd();
问题是,如果文件不存在,它会抛出 FileNotFoundException
(显然)。我希望使用 if/else
来捕获错误,用户可以在其中直接浏览以查找文件,但我不确定使用什么来验证 if filePath
是否有效。
例如,我不能使用:
if (filePath == null)
因为检索字符串的top方法总是会返回一个值,无论它是否有效。我该如何解决这个问题?
最佳答案
虽然 File.Exists()
适合作为开始,但请注意,如果文件变得无法访问(删除的网络驱动器、由另一个程序打开的文件),忽略异常仍然可能导致错误情况、删除等)在调用 File.Exists()
和 new StreamReader()
之间的时间内。
关于c# - 捕获 "FileNotFoundException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27242887/