[TIPS] 폴더와 파일의 변경을 감시하는 방법
-
2012년 8월 15일 수요일 오전 4:59
폴더와 파일의 변경을 감시하는 방법- 유형 변경됨 Sungman KOMVP 2012년 8월 15일 수요일 오전 5:24
- 유형 변경됨 Jina LeeModerator 2012년 8월 31일 금요일 오전 6:51
모든 응답
-
2012년 8월 15일 수요일 오전 5:00
폴더나 파일이 변경되자 마자 그것을 알기 위한 방법을 소개합니다.이것은, System.IO.FileSystemWatcher 클래스를 사용하면 간단하게 할 수 있습니다.
폴더 또는 파일이 작성되었을 때에는 Created 이벤트가..
삭제되었을 때에는 Deleted 이벤트가..
이름이 변경되었을 때에는 Renamed 이벤트가...
사이즈, 시스템 속성, 최종 기입 시각, 최종 액세스 시각, 또는 시큐러티 액세스 허가가 변경되었을 때에는 Changed 이벤트가
발생합니다.다음의 예에서는, 폴더"C:\My Documents"내의 TXT 파일의 작성, 삭제, 이름의 변경을 감시하고 있습니다.
WaitForChanged 메소드를 사용해 동기적으로 감시하고 있기 때문에, 감시중일때는 멈춘것처럼 됩니다.Dim watcher As New System.IO.FileSystemWatcher '감시하는 디렉토리를 지정 watcher.Path = "C:\My Documents" '*.txt파일을 감시, 모두 감시할 때는""으로 한다. watcher.Filter = "*.txt" '파일명과 디렉토리명으로 최종적으로 쓴날짜의 변경을 감시 watcher.NotifyFilter = System.IO.NotifyFilters.FileName Or _ System.IO.NotifyFilters.DirectoryName Or _ System.IO.NotifyFilters.LastWrite '서브디렉토리는 감시하지않는다. watcher.IncludeSubdirectories = False '필요에따라서 버퍼의 사이즈를 변경한다. 'watcher.InternalBufferSize = 4096 '동기적인 감시를 실시한다. Dim changedResult As System.IO.WaitForChangedResult = _ watcher.WaitForChanged(System.IO.WatcherChangeTypes.All) If changedResult.TimedOut Then Console.WriteLine("타임아웃 되었습니다.") Return End If '변경이 있었을때 결과를 표시한다. Select Case changedResult.ChangeType Case System.IO.WatcherChangeTypes.Changed Console.WriteLine(("파일 [" + _ changedResult.Name + "] 가 변경되었습니다.")) Case System.IO.WatcherChangeTypes.Created Console.WriteLine(("파일 [" + _ changedResult.Name + "] 가 작성되었습니다.")) Case System.IO.WatcherChangeTypes.Deleted Console.WriteLine(("파일 [" + _ changedResult.Name + "] 가 삭제되었습니다.")) Case System.IO.WatcherChangeTypes.Renamed Console.WriteLine(("파일 [" + _ changedResult.OldName + "] 의 이름이 [" + _ changedResult.Name + "] 로 변경되었습니다.")) End Select- 답변으로 표시됨 Jina LeeModerator 2012년 9월 3일 월요일 오전 7:51

