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 #.

Jawaban:


303

Menggunakan:

File.Exists(path)

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

Edit: Di System.IO


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



4

Berikan path lengkap sebagai input. Hindari jalur relatif.

 return File.Exists(FinalPath);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.