2010-04-15 6 views
0

FileSystemWatcher는 이벤트를 두 번 이상 트리거합니다. 여기에 내 설정이있다. FileSystemWatcher 이벤트 트리거 문제

  • 문서를 변경하는 경우

    watcher = new FileSystemWatcher(); 
    watcher.Path = @"D:\testSpace"; 
    watcher.InternalBufferSize = 1024*64; 
    watcher.Deleted += Triggered; 
    watcher.Changed += Triggered; 
    watcher.Created += Triggered; 
    watcher.Error += ErrorOccured; 
    watcher.NotifyFilter = NotifyFilters.LastWrite; 
    watcher.IncludeSubdirectories = true; 
    
    watcher.EnableRaisingEvents = true; 
    

    는, 문서 이벤트가 두 번 트리거 변경.

  • 새 폴더를 만든 이벤트는 해당 폴더 아래에 새 파일이 만들어지지 않으면 트리거되지 않습니다.

  • 삭제 된 이벤트는 트리거되지

너희들이이 문제에 대한 주위의 모든 일을 알고있다 (변화뿐만 아니라 삭제하여 시도)?

+1

두 번 발사되는 이벤트를 말하지 않습니다. – spender

+1

NotifyFilter 값을 수정하십시오. –

답변

3

FileSystemWatcher :

일반적인 파일 시스템 작업이 개 이상의 이벤트를 발생시킬 수 있습니다. 예를 들어 파일을 디렉토리에서 다른 디렉토리로 이동하면 OnChanged 및 일부 OnCreated 및 OnDeleted 이벤트가 발생할 수 있습니다. 파일을 이동하면 복합 작업이 여러 번 이루어 지므로 작업이 여러 개 발생하므로 이벤트가 여러 개 발생합니다. 마찬가지로 일부 응용 프로그램 (예 : 바이러스 백신 소프트웨어) 은 FileSystemWatcher에 의해 감지되는 추가 파일 시스템 을 야기 할 수 있습니다.

첫 번째 문제에 대한 해결책은 링크에 설명되어 있습니다.

+0

친애하는 선생님, 어쩌면 당신은 내 질문에 당신의 대답, http://stackoverflow.com/questions/7184472/fileinfo-exceptions에 대해 살펴볼 수 있습니다. 미리 감사드립니다. – Derek