Tôi có một thư mục mà tập tin được sao chép. Tôi muốn xem và xử lý tệp ngay khi chúng được sao chép vào thư mục. Tôi có thể phát hiện khi một tệp nằm trong thư mục, cho dù thông qua bỏ phiếu (triển khai hiện tại của tôi) hay trong một số thử nghiệm bằng cách sử dụng API Windows từ một vài mẫu tôi đã tìm thấy trực tuyến.Xem thư mục C++ - Cách phát hiện sao chép đã kết thúc
Vấn đề là tôi phát hiện khi tệp được tạo lần đầu và tệp vẫn được sao chép. Điều này làm cho chương trình của tôi, cần truy cập vào tệp, thông qua lỗi (vì tệp chưa hoàn tất). Làm thế nào tôi có thể phát hiện không khi bắt đầu sao chép nhưng khi sao chép kết thúc? Tôi đang sử dụng C + + trên Windows, do đó, câu trả lời có thể là nền tảng phụ thuộc nhưng, nếu có thể, tôi muốn nó được nền tảng bất khả tri.
Tôi đã tìm thấy câu hỏi này chỉ vài phút trước: http://stackoverflow.com/questions/559659/how-to-know-a-file-is-finished-copying Nó rất giống với vấn đề của tôi nhưng "được phê duyệt "giải pháp là xa được thanh lịch và chức năng. – petersaints
Nếu mã của bạn sẽ chạy trong ngữ cảnh quản trị, tức là, dưới dạng dịch vụ hệ thống, bạn có thể sử dụng nhật ký thay đổi. Xem http://msdn.microsoft.com/en-us/library/windows/desktop/aa363798%28v=vs.85%29.aspx –
Xem xét khả năng những thứ như sao chép ngây thơ bằng cách sử dụng 'fread()'/'fwrite() 'Tôi không nghĩ rằng có một giải pháp chung. Không khá mạnh mẽ, nhưng có thể bằng cách theo dõi mở xử lý các tập tin? –