作者:绿色风
分类:
时间:2022-08-18
浏览:150
楼主 amulee |
没用过不知道,API中获取这些时间有这么多讲究。 在API文件查找的那个帖子里可以获取这些类型为FILETIME的时间。 这个FILETIME类型的属性得到的是两串看不懂的数字,还必须使用FileTimeToSystemTime函数转换后才行。
代码如下:
- Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
- Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
- Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
- Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
- '文件结构
- Type FILETIME
- 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 * 255
- cAlternate As String * 14
- End Type
- Private 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 Type
- Sub Test()
- Dim FindData As WIN32_FIND_DATA
- Dim CTime1 As FILETIME, LATime1 As FILETIME, LWTime1 As FILETIME
- Dim CTime2 As SYSTEMTIME, LATime2 As SYSTEMTIME, LWTime2 As SYSTEMTIME
- Dim FileHandle As Long
- Dim TimeHandle As Long
- Dim FPath As String
- Dim StrA As String
- FPath = ThisWorkbook.FullName
- '开始API查找,获取文件信息
- FileHandle = FindFirstFile(FPath, FindData)
- FindClose FileHandle
- '先将时间转换为本地时间
- FileTimeToLocalFileTime FindData.ftCreationTime, CTime1
- FileTimeToLocalFileTime FindData.ftLastAccessTime, LATime1
- FileTimeToLocalFileTime FindData.ftLastWriteTime, LWTime1
- '再将时间转换为标准系统时间
- FileTimeToSystemTime CTime1, CTime2
- FileTimeToSystemTime LATime1, LATime2
- FileTimeToSystemTime LWTime1, LWTime2
- '转换成字符串
- StrA = "本文件创建时间为:" & CTime2.wYear & "年" & CTime2.wMonth & "月" & CTime2.wDay & "日" & CTime2.wHour & "时" & CTime2.wMinute & "分" & CTime2.wSecond & "秒" & vbCrLf & _
- "最后修改时间为 :" & LWTime2.wYear & "年" & LWTime2.wMonth & "月" & LWTime2.wDay & "日" & LWTime2.wHour & "时" & LWTime2.wMinute & "分" & LWTime2.wSecond & "秒" & vbCrLf & _
- "最后访问时间为 :" & LATime2.wYear & "年" & LATime2.wMonth & "月" & LATime2.wDay & "日" & LATime2.wHour & "时" & LATime2.wMinute & "分" & LATime2.wSecond & "秒"
- MsgBox StrA
- End Sub
API获取文件创建时间、最后修改时间、最后访问时间.rar |
2楼 rongjun |
学习了!
|
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一