'this file shows how to change the date/time on a file Option Explicit Private Type FILETIME dwLowDate As Long dwHighDate As Long 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 wMillisecs As Integer End Type Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const GENERIC_WRITE = &H40000000 Private Const OPEN_EXISTING = 3 'Declares for SetFileDate Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (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 LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, MullP As FILETIME, NullP2 As FILETIME, lpLastWriteTime As FILETIME) As Long Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public Sub SetFileDate(sFileName As String, sDate As Date) Dim hFile As Long Dim lResult As Long Dim udtSysTime As SYSTEMTIME Dim udtFileTime As FILETIME Dim udtLocalTime As FILETIME With udtSysTime .wYear = Year(sDate) .wMonth = Month(sDate) .wDay = Day(sDate) .wDayOfWeek = WeekDay(sDate) - 1 .wHour = Hour(sDate) .wMinute = Minute(sDate) .wSecond = Second(sDate) End With lResult = SystemTimeToFileTime(udtSysTime, udtLocalTime) lResult = LocalFileTimeToFileTime(udtLocalTime, udtFileTime) hFile = CreateFile(sFileName, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0) lResult = SetFileTime(hFile, udtFileTime, udtFileTime, udtFileTime) Call CloseHandle(hFile) End Sub