读书人

能不能用 VB 写一个修改文件的创建时间

发布时间: 2012-01-22 22:38:43 作者: rapoo

能不能用 VB 写一个修改文件的创建时间的东东?
如题
有没有这样的代码?

[解决办法]
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
[解决办法]
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 Sub

Public Function GetFileHandle(ByVal FileName As String, bOpen As Boolean) As Long

Const 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 = &H4

Dim 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 Function

Dim 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

读书人网 >VB

热点推荐