Catch "FileNotFoundException"
本文关键字:quot FileNotFoundException Catch | 更新日期: 2023-09-27 18:32:40
>我有一种方法可以获取特定文件的文件夹路径:
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
来捕获错误,用户可以在其中浏览以直接查找文件,但我不确定使用什么来验证filePath
是否有效。
例如,我不能使用:
if (filePath == null)
因为检索字符串的 top 方法将始终返回一个值,无论它是否有效。我该如何解决这个问题?
虽然File.Exists()
适合作为开始,但请注意,如果在调用 File.Exists()
和 new StreamReader()
之间的时间内文件变得无法访问(丢弃的网络驱动器、由另一个程序打开的文件、已删除等(,忽略异常仍会导致错误情况。
您可以使用
File.Exists:-
if(File.Exists(filePath))
{
//Do something
}
else
{
}
string filePath = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.MyDocuments), "file.txt");
if(!File.Exists(filePath))
{
/* browse your file */
}
else
{
StreamReader rdr = new StreamReader(filePath); // "C:'Users'<user>'Documents'file.txt"
string myString = rdr.ReadToEnd();
}