파일 활동이 많은 경우 ReadDirectoryChangesW API 함수 누락 된 파일에 대한 인터넷 게시물이 많이 있습니다. 대부분 ReadDirectoryChangesW 함수 루프가 호출되는 속도를 비난합니다. 이것은 잘못된 가정입니다. 내가 본 가장 좋은 설명은 다음 포스트 월요일, 14 일 코멘트 2008 오후 2시 15분 27초누락 된 파일 변경 내용을 ReadDirectoryChangesW 유지하는 방법
입니다http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4465cafb-f4ed-434f-89d8-c85ced6ffaa8/
요약은 그들이 떠날로 ReadDirectoryChangesW 함수 보고서의 파일 변경 사항을 것입니다 파일 쓰기 대기열에 추가됩니다. 그리고 커밋되기 전에 너무 많은 항목이 추가되면 일부 항목에 대해주의를 잃게됩니다. 디렉토리에 1000 개 이상의 파일을 생성하는 프로그램을 작성한 경우 실제 구현과 함께이를 볼 수 있습니다. 얼마나 많은 파일 이벤트 알림을 받는지 계산하십시오. 모든 이벤트 알림을받지 못할 때가 있습니다.
질문은 매번 볼륨을 플러시하지 않고도 ReadDirectoryChangesW 기능을 사용하는 신뢰할 수있는 방법을 찾았습니까? 사용자가 관리자가 아니며 완료하는 데 약간의 시간이 걸리는 경우에는 허용되지 않습니다.
약 99 %의 시간 동안 작동합니다. 다른 디렉토리의 파일 (파일 변경이 많은 파일 이외의 파일)이 건너 뛴 파일 인 경우 어떻게됩니까? 한 디렉토리에서 변경 사항을 검사하지만 다른 디렉토리에서 단일 파일 변경 사항을 놓치게됩니다. –
FileSystemWatcher 클래스는 .NET에서 ReadDirectoryChangesW를 래핑하는 방법이므로 No는 도움이되지 않습니다. – Garen
내 대답은 일정 기간 내에 ReadDirectoryChangesW에 대한 대안을 트리거하는 이벤트 수를 감지하는 것에 관한 것입니다. – hova