c# - 捕获 "FileNotFoundException"

标签 c#

我有一个方法来获取特定文件的文件夹路径:

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/

相关文章:

c# - 如何取消 RIA 服务 LoadOperation

c# - 捕捉/录制窗口声音

c# - 出现异常 : Invalid attempt to read when reader is closed

C# 小于一定数量

c# - WPF Template.FindName 总是返回 null

c# - 如何以编程方式将项目添加到 WP7 中的 PanoramaItem

c# - 在 C++/CLI 中访问嵌入式资源

c# - 如何实现我自己的高级生产者/消费者场景?

c# - 以编程方式选择 WPF RichTextBox (FlowDocument) 中的文本范围

c# - 在 C# 中测试字典之间的相等性