Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何从中获取最近修改的日期pdf文件并在VB上显示?_Vb.net - Fatal编程技术网

Vb.net 如何从中获取最近修改的日期pdf文件并在VB上显示?

Vb.net 如何从中获取最近修改的日期pdf文件并在VB上显示?,vb.net,Vb.net,我试图让vb读取特定文件夹中最近修改的pdf文件,并在我的vb表单上显示该pdf文件。我只能在我的vb表单上创建一个简单的pdf显示,我对此感到困惑。有人能帮忙吗 找不到解决我问题的办法 Dim testFile As System.IO.FileInfo Dim fileName As String Dim folderPath As String Dim fullPath As String testFile = My.Computer.FileSy

我试图让vb读取特定文件夹中最近修改的pdf文件,并在我的vb表单上显示该pdf文件。我只能在我的vb表单上创建一个简单的pdf显示,我对此感到困惑。有人能帮忙吗

找不到解决我问题的办法

    Dim testFile As System.IO.FileInfo
    Dim fileName As String
    Dim folderPath As String
    Dim fullPath As String

    testFile = My.Computer.FileSystem.GetFileInfo("C:\Users\example.pdf")
    folderPath = testFile.DirectoryName
    fileName = testFile.Name
    fullPath = My.Computer.FileSystem.CombinePath(folderPath, fileName)
    AxAcroPDF1.src = fullPath

我的vb表单应该显示基于最新修改文件的PDF。

您需要调用两组函数来实现这一点

答:这将列出一个目录中的所有文件,并且它有提供搜索模式和在子文件夹中查找的选项

B.-这将返回您传递给它的文件的上次修改时间

您可以将这些功能组合在一起,如:

Private Function GetLatestModifiedFileName(searchFolder As String) As String
    Dim retVal = "<empty>"

    Dim filesInDirectory() = Directory.GetFiles(searchFolder)

    Dim latestModifiedtime As DateTime = DateTime.MinValue

    For Each fileInDirectory As String In filesInDirectory
        Dim currentFileModifiedTime As DateTime = File.GetLastWriteTime(fileInDirectory)

        If (currentFileModifiedTime > latestModifiedtime) Then
            retVal = fileInDirectory
            latestModifiedtime = currentFileModifiedTime
        End If
    Next

    Debug.Print("File: '{0}' was last modified on: '{1}'", retVal, latestModifiedtime)

    Return retVal
End Function

变量lastModifiedFileName将包含具有最新修改日期/时间的文件的完整路径。

您可以使用IO.DirectoryInfo类获取目录中的每个IO.FileInfo,同时特别针对PDF文件,然后使用LINQ按其LastWriteTime对其进行排序,然后从集合中获取最后一个文件:

Dim folder As IO.DirectoryInfo = New IO.DirectoryInfo("my folder path here")
Dim lastModifiedPdf As IO.FileInfo = folder.GetFiles("*.pdf").OrderBy(Function(f) f.LastWriteTime).LastOrDefault()

If lastModifiedPdf IsNot Nothing Then
    '....
End If

谢谢你,大卫。简单的问题。现在,我正在VB表单中显示PDF。如何在VB窗体之外显示PDF或图像文件?我建议打开一个单独的线程,但通常如果您只想使用默认应用程序打开文件,请使用该过程。启动方法:
Dim folder As IO.DirectoryInfo = New IO.DirectoryInfo("my folder path here")
Dim lastModifiedPdf As IO.FileInfo = folder.GetFiles("*.pdf").OrderBy(Function(f) f.LastWriteTime).LastOrDefault()

If lastModifiedPdf IsNot Nothing Then
    '....
End If