Поиск самого старого и нового файла в каталоге - PullRequest
0 голосов
/ 08 апреля 2019

Я создаю макрос Excel, в котором мне нужно поместить время первого и последнего измененного файла в таблицу Excel, например, время первого измененного файла журнала и время последнего изменения. (Предположим, в каталоге несколько файлов журнала).Мне нужно изменить время для первого и последнего файла.

Я не могу сравнить дату, пожалуйста, предложите.

Sub test()
Dim fso As Object
Dim fol As Object
Dim fil As Object
Dim temp As Date

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fol = fso.GetFolder("Z:\Logfiles\Monitor\Logon")

    For Each fil In fol.Files
        temp = fil.DateLastModified
    Next fil
MsgBox temp
End Sub

Ответы [ 2 ]

2 голосов
/ 08 апреля 2019

Вам просто нужно сохранить самую старую и новейшую дату, когда вы просматриваете каталог:

Option Explicit

Sub test()
    Dim fso As Object
    Dim fol As Object
    Dim fil As Object
    Dim temp As Date

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fol = fso.GetFolder("C:\Temp\")

    Dim oldest As Date
    Dim oldestFile As String
    Dim newest As Date
    Dim newestFile As String
    For Each fil In fol.Files
        temp = fil.DateLastModified
        If (newest = #12:00:00 AM#) Or (temp > newest) Then
            newest = temp
            newestFile = fil.Path
        End If
        If (oldest = #12:00:00 AM#) Or (temp < oldest) Then
            oldest = temp
            oldestFile = fil.Path
        End If
    Next fil
    MsgBox "Oldest File: " & oldestFile & " (" & oldest & ")" & vbCrLf & _
           "Newest File: " & newestFile & " (" & newest & ")"
End Sub
0 голосов
/ 08 апреля 2019
Option Explicit

Sub LoopAllFilesInFolder()

    Dim strFolder As String
    Dim Library As Object, File As Object, Folder As Object

    strFolder = "Z:\Logfiles\Monitor\Logon\"

    Set Library = CreateObject("Scripting.FileSystemObject")
    Set Folder = Library.GetFolder(strFolder)
    Set File = Folder.Files

    For Each File In File

        MsgBox File.Name & " details:" & vbNewLine & vbNewLine & _
                "Date Created: " & File.datecreated & vbNewLine & _
                "Date Last Accessed: " & File.datelastaccessed & vbNewLine & _
                "Date Last Modified: " & File.dateLastModified

    Next

    Set Library = Nothing
    Set Folder = Nothing
    Set File = Nothing

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...