Vb.net 连续循环文件搜索
我是visual basic新手,正在尝试创建一个控制台应用程序,在目录中搜索PDF文件,然后打开最近创建的文件。我希望搜索从程序打开到关闭自动运行 到目前为止,我已经能够搜索文件夹并打开文件,但我不知道如何使搜索持续Vb.net 连续循环文件搜索,vb.net,file-io,Vb.net,File Io,我是visual basic新手,正在尝试创建一个控制台应用程序,在目录中搜索PDF文件,然后打开最近创建的文件。我希望搜索从程序打开到关闭自动运行 到目前为止,我已经能够搜索文件夹并打开文件,但我不知道如何使搜索持续 Imports System.IO Imports System.Windows.Forms Imports System.Threading Imports System.Diagnostics.Process Module Module1 Dim SearchDir
Imports System.IO
Imports System.Windows.Forms
Imports System.Threading
Imports System.Diagnostics.Process
Module Module1
Dim SearchDir As String
Dim OldestFile As FileInfo = Nothing
Dim NewestFile As FileInfo = Nothing
Dim OpenFile As String = Nothing
Dim FileCount As Integer = 0
Sub Main()
SearchDir = "C:\Reports"
Dim Directory As New DirectoryInfo(SearchDir)
Console.WriteLine("Searching {0}", SearchDir)
Console.WriteLine()
Try
For Each finfo In Directory.EnumerateFiles("*.pdf", IO.SearchOption.TopDirectoryOnly)
If OldestFile Is Nothing OrElse finfo.LastWriteTime <= OldestFile.LastWriteTime Then
OldestFile = finfo
End If
If NewestFile Is Nothing OrElse finfo.LastWriteTime >= NewestFile.LastWriteTime Then
NewestFile = finfo
End If
FileCount += 1
Next
Console.WriteLine("Oldest file is {0} {1}.", OldestFile.LastWriteTime, OldestFile.Name)
Console.WriteLine("Newest file is {0} {1}.", NewestFile.LastWriteTime, NewestFile.Name)
Console.WriteLine()
Console.WriteLine("{0} files searched", FileCount)
Try
Dim APP = Shell("C:\Program Files (x86)\Adobe\Reader 11.0\Reader\acrord32.exe", vbMaximizedFocus)
Thread.Sleep(5000) 'Delay 5 seconds for program initialize
Dim reader As Process
reader = Process.Start(NewestFile.FullName)
Thread.Sleep(2000) 'Delay 2 seconds for program initialize
SendKeys.SendWait("^l")
Thread.Sleep(2000) 'Delay 2 seconds for program initialize
SendKeys.SendWait("^+h")
Catch ex2 As Exception
Console.WriteLine("ERROR Activating Adobe Reader.")
Console.ReadLine()
End Try
Imports System.IO
导入System.Windows.Forms
导入系统线程
导入System.Diagnostics.Process
模块1
Dim SearchDir作为字符串
Dim OldestFile As FileInfo=无
Dim NewestFile As FileInfo=无
将OpenFile设置为字符串=无
Dim FileCount为整数=0
副标题()
SearchDir=“C:\Reports”
Dim目录作为新目录信息(SearchDir)
Console.WriteLine(“搜索{0}”,SearchDir)
Console.WriteLine()
尝试
对于目录.EnumerateFiles(“*.pdf”,IO.SearchOption.TopDirectoryOnly)中的每个finfo
如果OldestFile为Nothing或lse finfo.LastWriteTime=NewestFile.LastWriteTime,则
NewestFile=finfo
如果结束
FileCount+=1
下一个
WriteLine(“最旧的文件是{0}{1}.”,OldestFile.LastWriteTime,OldestFile.Name)
WriteLine(“最新文件是{0}{1}.”,NewestFile.LastWriteTime,NewestFile.Name)
Console.WriteLine()
Console.WriteLine(“搜索了{0}个文件”,文件计数)
尝试
Dim APP=Shell(“C:\Program Files(x86)\Adobe\Reader 11.0\Reader\acrord32.exe”,vbMaximizedFocus)
程序初始化的线程睡眠(5000)延迟5秒
作为过程的Dim读取器
reader=Process.Start(NewestFile.FullName)
Thread.Sleep(2000)程序初始化延迟2秒
SendKeys.SendWait(“^l”)
Thread.Sleep(2000)程序初始化延迟2秒
SendKeys.SendWait(“^+h”)
捕获ex2作为异常
Console.WriteLine(“激活Adobe Reader时出错”)
Console.ReadLine()
结束尝试
您无法继续搜索。您只需搜索一次,然后准备一个FileSystemWatcher实例,并要求它在新的PDF文件添加到文件夹时通知您。根据Steve的评论,FileSystemWatcher就是您想要的。