은 FindFirstChangeNotification 최고의 API 를 사용한 파일 시스템 변화에 알림 windows?

StackOverflow https://stackoverflow.com/questions/16615

문제

나는 새로운 윈도우 프로그래밍을 통보 받의 모든 변경 사항을 파일 시스템(와 비슷한 정보는 FileMon SysInternals 에서는 표시되지만 통해 API).은 FindFirstChangeNotification 각(non-네트워크,비 substed)드라이브 내의 최선의 방법이 다른 더 적합 C/C++APIs?

도움이 되었습니까?

해결책

FindFirstChangeNotification 은 괜찮지만,약간 더 궁극적인 힘을 사용해야 ReadDirectoryChangesW. (사실,그것도에서 권장하는 문서!)

그것은 필요가 없는 함수 포인터가 필요없는 당신 수동으로 해독 원 버퍼를 사용하는 유니코드 파일의 이름은,그러나 그것은 일반적으로 더 많은 유연합니다.

다른 한편으로는 경우에,당신이 원하는 무엇을 할 FileMon 않습니다,당신은 아마 무엇 FileMon 않고 사용 IFS 을 만들고 설치하는 파일 시스템을 필터.

다른 팁

다른 방법이 있다,하지만 그들의 대부분을 포함분의 노력을(거나 성능에서의 응용 프로그램,또는 당신을 차단하는 스레드를 사용하여 그들에게,etc.).FindFirstChangeNotification 는 조금 복잡하지 않는 경우에는 사용을 다루는 함수 포인터 등,하지만 그의 미덕을 얻 OS 지의 대부분은 당신을 위해 작업을 수행합니다.

실제로 FileSystemWatcher 완벽하게 작동하는 공유 네트워크 드라이브입니다.나는 그것을 사용하여 지금은 응용 프로그램에서는,다른 것들 사이에,모니터링 파일 시스템 변경합니다.(www.tabbles.net).

당신이 사용할 수 있습 FileSystemWatcher 클래스입니다.매우 효율적이지만 작동할 수 없습으로 네트워크 드라이브입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top