Как узнать, существует ли файл в C # / .NET?

186

Я хотел бы проверить строку, содержащую путь к файлу, на наличие этого файла (что-то вроде -eтеста в Perl или os.path.exists()в Python) в C #.

Дарен Томас
источник

Ответы:

303

Использование:

File.Exists(path)

MSDN: http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

Редактировать: в System.IO

Дэниел Дженнингс
источник
14
File.Exists (path) возвращает false, даже если файл существует, но вызывающему не хватает разрешения на его чтение. Есть ли другой способ справиться с такими ситуациями и проверить, существует ли файл, даже если вызывающий не может его прочитать?
ADTC
3
@ADTC: с точки зрения безопасности звучит нормально, что это работает таким образом, с точки зрения разработчика, это может усложнить ситуацию. Получаете ли вы исключение в этом случае, если вы пытаетесь создать файл?
user276648
2
@ADTC просто наткнулся и подумал, что я мог бы упомянуть каталоги выпадающего списка. Они могут быть установлены там, где у вас есть разрешение на создание или запись, но нет разрешения на чтение. Не то чтобы он имел непосредственное отношение к этому вопросу, просто они не так странны, как можно подумать.
Ukko
1
Примечание: File.Exists возвращает значение False на диске Google. Поток файлов G: если регистр пути не совсем соответствует тому, что на самом деле находится в G :. Обычно корпус любого физического диска не имеет значения, поэтому мне интересно, есть ли что-то не так с методом Exists?
CTZStef
1
@CTZStef - это особенность виртуального диска Google, а не метода фреймворка.
Евгений Маевский 'Обратный