子项中的 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 节点,或者只是更新整个树。
我使用相同的 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 节点,或者只是更新整个树。