Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type
Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare Function GetFileTime Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As Long Private Declare Function SetFileTime Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As Long
这是API函数吗? 如果我要将"C:\a.txt"的创建时间改成1980年1月1日,该怎么写代码?
Public Sub SetFileLastWriteTime(ByVal hFile As Long, ByVal NewValue As Variant) Dim bSuccess As Boolean Dim dtFileTime As FILETIME
' Fill a FILETIME structure SetTimeValue NewValue, dtFileTime
' Save new time stamp bSuccess = SetFileTime(hFile, ByVal 0&, ByVal 0&, dtFileTime)
End SubPublic Function GetFileHandle(ByVal FileName As String, bOpen As Boolean) As LongConst GENERIC_READ As Long = &H80000000 Const OPEN_EXISTING = &H3 Const FILE_SHARE_READ = &H1 Const GENERIC_WRITE As Long = &H40000000 Const FILE_SHARE_WRITE As Long = &H2 Const CREATE_ALWAYS As Long = 2 Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20 Const FILE_ATTRIBUTE_HIDDEN As Long = &H2 Const FILE_ATTRIBUTE_READONLY As Long = &H1 Const FILE_ATTRIBUTE_SYSTEM As Long = &H4Dim Flags As Long, Access As Long Dim Disposition As Long, Share As Long If bOpen Then Access = GENERIC_READ Share = FILE_SHARE_READ Disposition = OPEN_EXISTING Flags = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL _ Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM Else Access = GENERIC_READ Or GENERIC_WRITE Share = 0& Flags = GetFileAttributesA(FileName) If Flags < 0& Then Flags = FILE_ATTRIBUTE_NORMAL ' CREATE_ALWAYS will delete previous file if necessary Disposition = CREATE_ALWAYS End If GetFileHandle = CreateFile(FileName, Access, Share, ByVal 0&, Disposition, Flags, 0&)
End FunctionDim bSuccess as Boolean Dim hFile as Long hFile = GetFileHandle("C:\a.txt",True) If hFile then bSuccess=SetFileLastWriteTime(hFile ,cDate(Format("1/1/1980","mm/dd/yyyy")) End If
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare Function SetFileTime Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As Long
如果我要将"C:\a.txt"的创建时间改成1980年1月1日,该怎么写代码?
Dim bSuccess As Boolean
Dim dtFileTime As FILETIME
' Fill a FILETIME structure
SetTimeValue NewValue, dtFileTime
' Save new time stamp
bSuccess = SetFileTime(hFile, ByVal 0&, ByVal 0&, dtFileTime)
End SubPublic Function GetFileHandle(ByVal FileName As String, bOpen As Boolean) As LongConst GENERIC_READ As Long = &H80000000
Const OPEN_EXISTING = &H3
Const FILE_SHARE_READ = &H1
Const GENERIC_WRITE As Long = &H40000000
Const FILE_SHARE_WRITE As Long = &H2
Const CREATE_ALWAYS As Long = 2
Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20
Const FILE_ATTRIBUTE_HIDDEN As Long = &H2
Const FILE_ATTRIBUTE_READONLY As Long = &H1
Const FILE_ATTRIBUTE_SYSTEM As Long = &H4Dim Flags As Long, Access As Long
Dim Disposition As Long, Share As Long If bOpen Then
Access = GENERIC_READ
Share = FILE_SHARE_READ
Disposition = OPEN_EXISTING
Flags = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL _
Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
Else
Access = GENERIC_READ Or GENERIC_WRITE
Share = 0&
Flags = GetFileAttributesA(FileName)
If Flags < 0& Then Flags = FILE_ATTRIBUTE_NORMAL
' CREATE_ALWAYS will delete previous file if necessary
Disposition = CREATE_ALWAYS
End If GetFileHandle = CreateFile(FileName, Access, Share, ByVal 0&, Disposition, Flags, 0&)
End FunctionDim bSuccess as Boolean
Dim hFile as Long
hFile = GetFileHandle("C:\a.txt",True)
If hFile then
bSuccess=SetFileLastWriteTime(hFile ,cDate(Format("1/1/1980","mm/dd/yyyy"))
End If