用FILEBOX取出文件及其创建时间,置于LISTVIEW中,单击标题栏可按文件名或创建时间进行升序或降序排列:
Dim fso As New FileSystemObject
Private Sub Command1_Click()
addlistview
End Sub
Private Sub Form_Load()
File1.Visible = False
File1.Path = "c:\windows\system"
ListView1.View = lvwReport
ListView1.Sorted = True
End Sub
Sub addlistview()
Dim mitem As ListItem
ListView1.ColumnHeaders.Add , , "filename", 2000
ListView1.ColumnHeaders.Add , , "datecreated", 3000
On Error Resume Next
Dim myfile As File
For i = 0 To File1.ListCount - 1
Set myfile = fso.GetFile(File1.Path & "\" & File1.List(i))
'allfile.Add CStr(myfile.DateCreated)
Set mitem = ListView1.ListItems.Add()
mitem.Text = File1.List(i)
mitem.SubItems(1) = myfile.DateCreated
Next
End Sub
Private Sub listview1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim lngCnt As Long
On Error GoTo listview1_ColumnClickErr
ListView1.SortKey = ColumnHeader.Index - 1
lngCnt = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwDescending Then
ListView1.SortOrder = lvwAscending
Else
ListView1.SortOrder = lvwDescending
End If
ListView1.Sorted = True
Exit_Proc:
Exit Sub
listview1_ColumnClickErr:
Resume Exit_Proc
End Sub
如何把一个文件夹里的文件分别按创建时间排序获取出来?
先像这样把文件夹下的文件取出来:
On Error Resume Next
Dim fso As New FileSystemObject
Dim mfolder As Folder
Dim mfile() As File
Dim tempfile As File
Set mfolder = fso.GetFolder("c:\mc")
Dim i As Long
i = 0
For Each tempfile In mfolder.Files
ReDim Preserve mfile(i)
Set mfile(i) = tempfile
i = i + 1
Next
然后,通过比较mfile(i).DateCreated进行排序,这个应该不成问题吧
Private Sub Command2_Click()
Dim file1 As File
Dim file2 As File
Dim file3 As File
Dim fs As FileSystemObject
Dim file11 As FILETIME
Dim file22 As FILETIME
Dim file33 As FILETIME
Dim rt As Long
Dim rt1 As Long
Set fs = CreateObject("scripting.filesystemobject")
Set file1 = fs.GetFile("e:\11.txt")
Set file2 = fs.GetFile("e:\22.txt")
Set file3 = fs.GetFile("e:\33.txt")
file11.dwHighDateTime = file1.DateCreated
file22.dwHighDateTime = file2.DateCreated
file33.dwHighDateTime = file3.DateCreated
file11.dwLowDateTime = file1.DateLastModified
rt = CompareFileTime(file11, file22)
rt1 = CompareFileTime(file33, file22)
'按日期比较两者是相等的。
End Sub