Visual Basic - eksempler - FileTime >program: FileTime

Ændring af filers sidste-ændring-tidsstempel:

 

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

Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type

Private Declare Function SystemTimeToFileTime Lib "kernel32" _
  ( lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME ) As Long 


Private Declare Function LocalFileTimeToFileTime Lib "kernel32" _
  ( lpLocalFileTime As FILETIME, lpFileTime As FILETIME ) As Long

Private Declare Function SetFileTime Lib "kernel32" _
  ( ByVal hFile As Long, ByVal NullP1 As Long, ByVal NullP2 As Long, _
    lpLastWriteTime As FILETIME ) As Long
 

Private Declare Function CreateFileA Lib "kernel32" _
  ( ByVal lpFileName As String, ByVal dwDesiredAccess As Long, _
    ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, _
    ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, _
    ByVal hTemplateFile As Long ) As Long


Private Declare Function CloseHandle Lib "kernel32" _
  ( ByVal hObject As Long ) As Long

Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
 
Dim X As Long
Dim Handle As Long
Dim System_Time As SYSTEMTIME
Dim File_Time As FILETIME
Dim Local_Time As FILETIME
 

System_Time.wYear = 2002
System_Time.wMonth = 6
System_Time.wDay = 17
System_Time.wHour = 12
System_Time.wMinute = 30

X = SystemTimeToFileTime(System_Time, Local_Time)


X = LocalFileTimeToFileTime(Local_Time, File_Time)


Handle = CreateFileA("C:\temp\test.txt", GENERIC_WRITE, _
                     FILE_SHARE_READ Or FILE_SHARE_WRITE, _
                     ByVal 0&, OPEN_EXISTING, 0, 0)

  
X = SetFileTime(Handle, ByVal 0&, ByVal 0&, File_Time)
  
CloseHandle Handle