Vb.net 连续循环文件搜索

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

我是visual basic新手,正在尝试创建一个控制台应用程序,在目录中搜索PDF文件,然后打开最近创建的文件。我希望搜索从程序打开到关闭自动运行

到目前为止,我已经能够搜索文件夹并打开文件,但我不知道如何使搜索持续

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就是您想要的。