건배! 나는 .net 4.0으로 작업 중이며 vb.net 콘솔 응용 프로그램을 작성 중이다. 응용 프로그램은 폴더를 모니터링하고 새 파일을 저장할 때마다 무언가를해야합니다.WaitForChanged 루프가 처음 통화 후 실행되지 않음
항상 처음에는 돌아 다니지 만 후속 이동은 실패한 것처럼 보입니다. 이유는 알 수 없습니다. 그것을 테스트하려면 테스트 폴더에 한 번에 1 개 이상을 캡처 폴더에 복사하고, 프로세스를 기다린 다음 다른 하나를 드롭하려고하는 테스트 폴더에 테스트 이미지가 있어야합니다.
Public Sub FileChanges()
Dim result As System.IO.WaitForChangedResult
watchfolder = New System.IO.FileSystemWatcher()
watchfolder.Path = My.Settings.WATCHDIR.ToString()
Console.WriteLine("Application Running, Waiting for a file")
result = watchfolder.WaitForChanged(System.IO.WatcherChangeTypes.Created)
Console.WriteLine("Filechange Detected")
Dim fileName As String = My.Settings.WATCHDIR.ToString() & result.Name.ToString()
End Sub
sub main()
Do
system.threading.thread.sleep(5000)
FileChanges()
Loop
End Sub
어떤 생각을 다음과 같이
코드는 무엇입니까? 파일이 생성 될 때까지 기다렸다가 무언가를 할 수있는 콘솔 응용 프로그램의 더 좋은 방법은 무엇입니까? 여기
Private Sub watchfolder_event(ByVal sender As Object, _
ByVal e As system.IO.FileSystemEventArgs) Handles watchfolder.changed
...
가 VB 2008 년에 작동하는 예입니다 :
다음 변경 이벤트를 처리하는 핸들러를 사용
watchfolder.EnableRaisingEvents = True
:
하나의 FileSystemWatcher를 사용하고 반복해서 만들지 마십시오. 그리고 5 초 동안 잠을 자지 마라. 그것은 무의미하다. –