Chú ý khi dùng File.Copy trong C#

1. Chế độ ghi đè (overwrite)

Khi sử dụng File.copy như dưới đây (chế độ không overwrite) mình nghĩ nếu trong thư mục C:\Temp\Data\ đã có file Test.txt thì hệ thống sẽ bỏ qua ko copy nữa.

Nhưng thực tế trong C# khi file đã tồn tại hệ thống sẽ throw file already exist exception

Nếu dùng chế độ overwrite như dưới đây thì hệ thống sẽ ghi đè nên file đã tồn tại mà không throw exception

2. Trường hợp file đang bị sử dụng

Khi dùng File.copy ở chế độ không ghi đè thì dù file Test.txt trong thư mục C:\Temp\Data\ có đang được 1 chương trình khác mở hay không hệ thống vẫn sẽ throw exception

Tuy nhiên với chế độ ghi đè thì ngược lại cho dù file Test.txt có đang được 1 chương trình khác sử dụng thì vẫn không có exceptioin cho dù việc copy không thành công (do file đang được chương trình khác sử dụng)

3. Kết luận

Như đã trình bày ở trên cả 2 cách copy đều có ưu nhược điểm riêng.

Với chế độ không ghi đè chúng ta phải xử lý exception khi file đích đã tồn tại.

Còn với chế độ ghi đè chúng ta cần kiểm tra file đích có đang tồn tại và đang bị sử dụng bởi chương trình khác hay không.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *