我有一种获取特定文件的文件夹路径的方法:
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方法总是会返回一个值,无论它是否有效。我该如何解决这个问题?
答案 0 :(得分:2)
虽然File.Exists()
适合作为开始,但请注意,如果文件无法访问(网络驱动器丢失,其他程序打开文件,删除等),忽略该异常仍会导致错误情况致电File.Exists()
和new StreamReader()
之间的时间。
答案 1 :(得分:1)
您可以使用File.Exists: -
if(File.Exists(filePath))
{
//Do something
}
else
{
}
答案 2 :(得分:0)
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();
}