У меня есть метод, чтобы получить путь к папке конкретного файла:Поймать «FileNotFoundException»
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();
Trouble если файл не существует, он выдает FileNotFoundException
(очевидно). Я хочу, надеюсь, использовать if/else
, чтобы поймать ошибку, в которой пользователь может найти файл напрямую, но я не уверен, что использовать, чтобы проверить, действительно ли filePath
действителен или нет.
Например, я не могу использовать:
if (filePath == null)
, потому что верхний способ получения строки всегда будет возвращать значение, независимо от того, является ли оно действительным. Как я могу это решить?
'если (! File.Exists (Filepath))' – MarcinJuraszek
@MarcinJuraszek: что происходит, когда файл был удален между Exists() возвращала истинное и доступа к файлам попытка была сделана? – abatishchev
Почему бы вам также не уловить исключение ** и позволить пользователю выбрать новый файл? –