API遍历磁盘,为什么时间定义要有低字节段和高字节段之分。
Type FILETIME '文件系统时间UTC格式
dwLowDateTime As Long '文件系统时间的低字节段
dwHighDateTime As Long '文件系统时间的高字节段
End Type
UTC转换为YYYY-MM-DD是取高还是取低。
Type FILETIME '文件系统时间UTC格式
dwLowDateTime As Long '文件系统时间的低字节段
dwHighDateTime As Long '文件系统时间的高字节段
End Type
UTC转换为YYYY-MM-DD是取高还是取低。
转换时,两部分要组合起来
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type
Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End TypePublic Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile&) As Long
Public Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As LongSub FILETIME()
Dim stcSysDateTime As SYSTEMTIME
Dim stcFindData As WIN32_FIND_DATA
Dim hResu&
hResu = FindFirstFile("F:\图书馆\程序设计\Delphi7完美经典.pdf", stcFindData)
If (hResu > 0) Then
FileTimeToSystemTime stcFindData.ftCreationTime, stcSysDateTime
Debug.Print "文件创建时间:"; stcSysDateTime.wYear & "-" & stcSysDateTime.wMonth & "-" & stcSysDateTime.wDay & _
" " & stcSysDateTime.wHour & ":" & Right$("0" & stcSysDateTime.wMinute, 2) & ":" & Right$("0" & stcSysDateTime.wSecond, 2)
FileTimeToSystemTime stcFindData.ftLastWriteTime, stcSysDateTime
Debug.Print "最后修改时间:"; stcSysDateTime.wYear & "-" & stcSysDateTime.wMonth & "-" & stcSysDateTime.wDay & _
" " & stcSysDateTime.wHour & ":" & Right$("0" & stcSysDateTime.wMinute, 2) & ":" & Right$("0" & stcSysDateTime.wSecond, 2)
FindClose hResu
Else
MsgBox "出现错误!", 16, "提示"
End If
End Sub
Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
用它定义的变量,一般是作为一个“整体”来使用的,除非你知道UTC格式的具体表示方案。
上面的 Sub FILETIME() 你最好换成别的过程名,我提交时没太注意。