2009-12-25 2 views

답변

1

귀하의 질문에 대한 답변은 귀하의 의사에 따라 다릅니다. 디스크에서 실제 작업 (검색, 읽기 또는 쓰기)을 감지 할 수 있는지 묻는 경우 대답은 '아니오'입니다. 디스크에는 성능의 이름으로 이러한 작업을 숨기는 디스크 캐시가 있습니다. 위의 메커니즘을 사용하여 캐시가 변경된시기를 알 수 있지만 실제 조작이 수행 된 시점은 알 수 없습니다.

우리는 저널링 파일 시스템을 가지고 있습니다. 그러나 저널링을 사용하더라도 치명적인 오류가 발생하여 캐시를 저장할 수 없으면 실제 데이터가 손실 될 수 있습니다.

위의 방법 중 FileSystemWatcher를 사용했으며 매우 잘 작동합니다. 파일 이벤트가 발생할 때 프로그램이 프로그램 이벤트를 수신한다는 통지를 받고 싶은 이벤트를 선택할 수 있습니다.

적어도 Windows/C#에서 이벤트는 별도의 스레드에서 제공되므로 대리자를 사용하여 이벤트가 발생한 주 스레드 (또는 무엇이든)에 신호를 보내야합니다.

1

체크 아웃 MSDN에서 다음 예제 : 당신은 C 프로그래밍 언어에서 사용할 수있는 특정 OS API를에 의존 할 필요가 Change Notify Watcher Sample

1

합니다.

관련 문제