Як дізнатися, чи існує файл у 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 (шлях) повертає помилку, навіть якщо файл існує, АЛЕ абоненту не вистачає дозволу на його читання. Чи є інший спосіб вирішення подібних ситуацій і перевірити, чи існує файл, навіть якщо абонент не може його прочитати?
ADTC

3
@ADTC: з точки зору безпеки звучить нормально, що це працює саме так, з точки зору розробника, це може ускладнити справи. Чи отримуєте ви у цьому випадку виняток, якщо спробуєте створити файл?
користувач276648

2
@ADTC просто натрапив на думку і подумав, що я можу згадати каталоги, що випадають. Вони можуть бути налаштовані там, де ви маєте дозвіл на створення чи запис, але немає дозволу на читання. Не те, що це питання стосується безпосередньо, лише те, що вони не такі дивні, як можна було б подумати.
Укко

1
Побічна примітка: File.Exists повертає помилкове на Google Drive файловий потік G: диск, якщо обшивка шляху точно не відповідає тому, що є насправді на G :. Зазвичай на будь-якому корпусі фізичного накопичувача це не має значення, тому мені цікаво, чи є щось із методом Exists?
CTZStef

1
@CTZStef - це вигадка віртуального диска google, а не рамкового методу.
Євген Маєвський «Зворотний виклик



4

Уведіть повний шлях як вхідний. Уникайте відносних шляхів.

 return File.Exists(FinalPath);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.