Tôi đang tạo ứng dụng máy chủ sao chép tệp bằng chức năng System.IO.File.Copy (...). Các tệp của tôi có thể khá lớn, do đó, nó có cơ hội công bằng nếu máy bị treo, nó xảy ra trong quá trình sao chép.Sao chép tệp nguyên tử trong .NET
Sau khi khởi động lại dịch vụ, tôi sẽ có thể nhận nhiệm vụ sao chép và tiếp tục. Làm thế nào tôi có thể phát hiện nếu một bản sao đã được hoàn thành thành công hoặc bị gián đoạn bởi sự cố máy chủ?
Gói hiện tại của tôi là sao chép tệp sang tên tạm thời và sau khi sao chép xong, hãy đổi tên thành tên cuối cùng. Bằng cách này, việc đặt tên tệp có thể mang thông tin trạng thái về sự cố.
Bạn có đề xuất nào tốt/tốt hơn không?
EDIT: Target OS là Win2003, do đó NTFS giao dịch không có sẵn
Xem thêm: http://stackoverflow.com/questions/15274861/file-move-atomic -kiểm tra –