Bagaimana cara mengetahui apakah ada file di C # / .NET?

186

Saya ingin menguji string yang berisi path ke file untuk keberadaan file itu (sesuatu seperti -etes di Perl atau os.path.exists()di Python) di C #.

Daren Thomas
sumber

Jawaban:

303

Menggunakan:

File.Exists(path)

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

Edit: Di System.IO

Daniel Jennings
sumber
14
File.Exists (path) mengembalikan false bahkan jika file itu ada tapi penelepon tidak memiliki izin untuk membacanya. Apakah ada cara berbeda untuk menangani situasi semacam ini dan memeriksa apakah ada file bahkan jika penelepon tidak dapat membacanya?
ADTC
3
@ADTC: dari sudut pandang keamanan kedengarannya normal bahwa ia bekerja seperti itu, dari sudut pandang pengembang, mungkin membuat segalanya lebih rumit. Apakah Anda mendapatkan pengecualian jika Anda mencoba membuat file?
user276648
2
@ADTC baru saja menemukan dan berpikir saya mungkin menyebutkan direktori drop-box. Itu dapat diatur di mana Anda telah membuat atau menulis izin tetapi tidak memiliki izin baca. Bukan berarti ini relevan dengan pertanyaan ini secara langsung, hanya saja mereka tidak seaneh yang mungkin dipikirkan orang.
Ukko
1
Catatan: File. Exists mengembalikan False di Google Drive. File Stream G: drive, jika casing path tidak sama persis dengan apa yang sebenarnya ada di G :. Biasanya pada setiap casing drive fisik tidak masalah, jadi saya bertanya-tanya, apakah ada sesuatu yang salah dengan metode yang ada?
CTZStef
1
@CTZStef itulah kekhasan dari drive virtual google daripada metode framework.
Eugene Mayevski 'Callback
53

System.IO.File :

using System.IO;

if (File.Exists(path)) 
{
    Console.WriteLine("file exists");
} 
Peter Hoffmann
sumber
25

System.IO.File.Exists (path)

msdn

pirho
sumber
4

Berikan path lengkap sebagai input. Hindari jalur relatif.

 return File.Exists(FinalPath);
shivi
sumber