【发布时间】:2014-01-09 21:45:18
【问题描述】:
下面是我如何使用 FileSystemWatcher 将 PDF 从一个位置移动到另一个位置。
Public Sub WATCHER()
'CREATE NEW FILESYSTEMWATCHER
Dim Watcher As New FileSystemWatcher()
Watcher.Path = "<<path>>"
Watcher.NotifyFilter = NotifyFilters.LastWrite
Watcher.Filter = "*.pdf"
AddHandler Watcher.Changed, AddressOf OnChanged
AddHandler Watcher.Created, AddressOf OnChanged
Watcher.EnableRaisingEvents = True
End Sub
Private Sub OnChanged(source As Object, e As FileSystemEventArgs)
'MOVE PDFs TO NEW LOCATION
For Each foundFile As String In My.Computer.FileSystem.GetFiles("<<path>>", FileIO.SearchOption.SearchAllSubDirectories, "*.pdf")
Dim foundFileInfo As New System.IO.FileInfo(foundFile)
'ToolStripStatusLabel1.Text = "Moving PDFs..."
File.Move(foundFile, "<<path>>" & foundFileInfo.Name) 'MOVES PDFs
Next
End Sub
我只想在所有 PDF 都被移动后继续做一些事情,比如一个说明所有文件都被移动的 msgbox。移动完成时是否会引发一些事件?
【问题讨论】:
-
在应用程序结束之前,文件观察程序永远不会真正完成或工作完成是吗?这不是观察者的重点吗?
-
我的想法是你可以在任何时候启动一个观察者对吗?我还认为您可以随时停止它而无需关闭应用程序。如果我知道关于文件观察者的一切,我就不会问任何问题,因为我显然不知道关于它的一切,所以我被否决了,很好吧?
-
是的,您可以启动和停止它们,但只要它们在运行,它们就永远不会完成。您可能想要某种进度报告,例如指示最后一步的标签,但您将不得不应对跨线程调用。
标签: vb.net visual-studio-2010 filesystemwatcher