子项中的 vb6 Treeview 刷新(显示更新的文件)

vb6 Treeview refresh ( show updated file ) in child items

我使用相同的 zip 名称加载 treeview1 和 treeview2,但子项可能彼此不同。
现在为了测试,我加载了带有几个 zip 名称的 treeview2,它有子项目,而不是重新加载我使用的项目

treeview2.refresh

现在加载 treeview2 项目,我打开 1 个 zip 并在其中添加任何 1 个文件然后返回到 treeview2 点击刷新它不显示更新,除非我再次重新加载项目。

TreeView2.Nodes.Clear
ListFiles app.path & "\folder\", "zip"

忽略上面的代码我这样加载我的项目,我如何刷新项目并显示更新的项目而不重新加载。

除非您通过应用程序将文件添加到 Zip 文件,否则您将必须自己监控 Zip 文件的内容或 DateLastModified。您可以创建一个子例程来遍历 Zip 文件名,检查它们的 content/DateLastModifed 并调整 TreeView 中的节点。如果您的 Zip 文件的内容经常更改,您可以在计时器上调用此子例程。

下面是一个使用字典来跟踪每个文件的 LastModifiedDate 的方法示例:

Dim m_objFileModifiedDates As New Dictionary
Dim m_objFSO As New FileSystemObject

Private Sub Command1_Click()
    Dim objFolder As Folder
    Dim objFile As File
    Dim sModifiedFiles As String

    Set objFolder = m_objFSO.GetFolder("C:\temp\")

    For Each objFile In objFolder.Files

        ' Check if it exists in Dictionary
        If Not m_objFileModifiedDates.Exists(objFile.Name) Then
            ' Add File
            m_objFileModifiedDates.Add objFile.Name, objFile.DateLastModified
        Else
            ' Check Last Modified Date
            If m_objFileModifiedDates.Item(objFile.Name) <> objFile.DateLastModified Then
                ' Update Dictionary
                m_objFileModifiedDates.Item(objFile.Name) = objFile.DateLastModified
                sModifiedFiles = sModifiedFiles & objFile.Name & vbCrLf
            End If
        End If

    Next

    If sModifiedFiles <> "" Then
        ' Update TreeView with modifed files
        MsgBox "Files modified: " & vbCrLf & sModifiedFiles
    End If

End Sub

当它检测到文件已被修改时,您可以通过再次读取修改后的文件的内容来更新您的 TreeView 并更新该 TreeView 节点,或者只是更新整个树。