Tôi muốn thăm dò ý kiến hệ thống tệp cho bất kỳ tệp hoặc thư mục con nào đã được thay đổi, thêm hoặc xóa. Tất cả các thay đổi sẽ được phát hiện nhanh chóng nhưng không gây áp lực lên máy. Hệ điều hành là Windows> = Vista, phần quan sát là một thư mục cục bộ.Tôi nên thăm dò ý kiến số lượng lớn các tệp để thay đổi như thế nào?
Thông thường, tôi sẽ sử dụng FileSystemWatcher, nhưng điều này dẫn đến các sự cố với các chương trình khác đã cố gắng xem cùng một vị trí (nổi bật, Windows Explorer). Ngoài ra, tôi nghe nói rằng FSW là không thực sự đáng tin cậy ngay cả đối với các thư mục địa phương và với một bộ đệm lớn.
Vấn đề chính tôi có là số lượng tệp và thư mục có thể rất lớn (đoán 7 chữ số). Đơn giản chỉ cần chạy một kiểm tra cho tất cả các tập tin mỗi giây đã ảnh hưởng đáng kể đến máy tính của tôi. Ý tưởng tiếp theo của tôi là kiểm tra các phần khác nhau của toàn bộ cây/giây để giảm tác động tổng thể, và có thể thêm một loại heuristic, như kiểm tra các tập tin được thay đổi thường xuyên trong kế tiếp nhanh hơn.
Tôi tự hỏi nếu có các mẫu cho loại vấn đề này, hoặc nếu có ai có kinh nghiệm với tình huống này.
Tất cả các thư mục con đều nằm trong một thư mục gốc? Bạn đã gặp phải vấn đề gì với windows explorer? Đây là một mẫu để đảm bảo bạn không bỏ lỡ bất kỳ tin nhắn nào. http://stackoverflow.com/questions/4967095/c-predict-file-system-events-on-folder-delete/4968391#4968391 – adrianm
@adrianm: Có, cùng một gốc. --- Explorer đã không cập nhật giao diện của nó khi một thư mục được theo dõi đã được thay đổi, tôi cho rằng vì FSW đã đánh cắp các sự kiện của nó. – mafu