2016-10-04 2 views
0

FileSystemWatcher을 사용하여 폴더 내용이 변경 될 때 이벤트를 가져옵니다. 파일을 추가, 삭제 또는 이름을 바꿀 때 이벤트를 성공적으로 감시했지만 이벤트가보고있는 디렉토리 내에 새 폴더가 만들어지면 이벤트가 트리거되지 않습니다.폴더가 추가 될 때 FileWatcher가 이벤트를 트리거하지 않음

나는 다음과 같은 이벤트와 시도했다 : 그것은

watcher.EnableRaisingEvents = true; 
watcher.IncludeSubdirectories = true; 

FileSystemWatcher 함께 할이 가능 도움이되지 않았지만,

watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.Attributes; 

나는 또한 true로 다음 두 가지 속성을 설정 한 또는 다른 것을 사용해야합니까?

감사

+0

'NotifyFilters.DirectoryName'을 사용해 보셨나요? – smoksnes

+0

코드에서 어디에서든지'watch.Filter'를 사용 했습니까? – Fratyx

답변

2

당신은 디렉토리 당신의 notifyfilter에서

NotifyFilters.DirectoryName 

을 포함하지 않았습니다.

watcher.NotifyFilter = NotifyFilters.DirectoryName | 
         NotifyFilters.LastAccess | 
         NotifyFilters.LastWrite | 
         NotifyFilters.FileName | 
         NotifyFilters.Size | 
         NotifyFilters.Attributes; 

내가 확인하지 않았다 당신이 그것을 언급하지 않았지만 Filter 세트를 가진 것은 diectory를 필터링 할 수도 있지만, 다음과 같이

그래서 당신은 설정이 notifyfilter해야

https://msdn.microsoft.com/en-us/library/system.io.notifyfilters(v=vs.110).aspx보기 docs speaks about 디렉토리에서 모니터링되는 파일을 결정하는 데 사용되는 필터 문자열을 가져 오거나 설정합니다.

+0

저는 열거 형 요소를 믿습니다 :'NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Attributes'는 NotifyFilters.DirectoryName을 사용하든 아니든 폴더 나 파일에 대해 작동합니다. – Ash

+0

@AshwinNair 이것은 사실이 아닙니다. 'NotifyFilters.DirectoryName'을 포함해야합니다. – user3185569

+0

@rene''* .txt ''와 같은 특정 필터가이 설정을 망칠 수 있다는 점을 포함하는 것이 좋습니다. 그것은 설정되지 않았거나 아무것도 설정되어 있지 않아야합니다. (' "*. *"') – user3185569