Làm thế nào để tìm hiểu xem một tập tin có tồn tại trong C # / .NET không?


186

Tôi muốn kiểm tra một chuỗi chứa đường dẫn đến một tệp để tồn tại của tệp đó (một cái gì đó giống như -ethử nghiệm trong Perl hoặc os.path.exists()trong Python) trong C #.

Câu trả lời:


303

Sử dụng:

File.Exists(path)

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

Chỉnh sửa: Trong System.IO


14
File.Exists (đường dẫn) trả về false ngay cả khi tệp tồn tại BUT người gọi thiếu quyền đọc nó. Có một cách khác để xử lý loại tình huống này và kiểm tra xem một tập tin có tồn tại ngay cả khi người gọi không thể đọc nó không?
ADTC

3
@ADTC: từ quan điểm bảo mật có vẻ bình thường rằng nó hoạt động theo cách đó, từ quan điểm của nhà phát triển, nó có thể làm cho mọi thứ phức tạp hơn. Bạn có nhận được một ngoại lệ trong trường hợp đó nếu bạn cố gắng tạo một tập tin?
dùng276648

2
@ADTC chỉ vấp ngã và nghĩ rằng tôi có thể đề cập đến các thư mục hộp thả. Chúng có thể được thiết lập ở nơi bạn có quyền tạo hoặc viết nhưng không có quyền đọc. Không phải là nó liên quan trực tiếp đến câu hỏi này, chỉ là chúng không kỳ quặc như người ta nghĩ.
Ukko

1
Lưu ý bên lề: File.Exists trả về Sai trên Google Drive File Stream G: drive, nếu vỏ đường dẫn không khớp chính xác với những gì thực sự có trên G :. Thông thường trên bất kỳ vỏ ổ đĩa vật lý nào không quan trọng, vì vậy tôi tự hỏi, có gì đó không ổn với phương pháp Exists không?
CTZStef

1
@CTZStef đó là cách giải quyết của ổ đĩa ảo của google chứ không phải là phương thức khung.
Cuộc gọi lại của Eugene Mayevski



4

Đưa ra đường dẫn đầy đủ làm đầu vào. Tránh những con đường tương đối.

 return File.Exists(FinalPath);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.