我有一个方法来获取特定文件的文件夹路径:
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方法将始终返回一个值,不管它是否有效。我怎么才能解决这个问题?
发布于 2014-12-02 06:06:42
您可以使用File.Exists(http://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110%29.aspx):- )
if(File.Exists(filePath))
{
//Do something
}
else
{
}发布于 2014-12-02 06:25:57
虽然File.Exists()作为一个开始是合适的,但请注意,如果文件无法访问,忽略异常仍然会导致错误情况(删除网络驱动器、由另一个程序打开的文件、删除等)。在调用File.Exists()和new StreamReader()之间的时间。
发布于 2014-12-02 06:35:14
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();
}https://stackoverflow.com/questions/27242887
复制相似问题