J'ai besoin a l'aide de VB6 de connaitre la date de création d'un fichier
sur mon disque dur. Merci de m'aider dans cette besogne car il fait trop
chaud ? :-)
Private Type FILETIME dwLowDateTime As Long dwHighDateTime 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 wMilliseconds As Integer End Type
Private Declare Function GetFileTime _ Lib "kernel32" _ ( _ ByVal hfile As Long, _ lpCreationTime As Any, _ lpLastAccessTime As Any, _ lpLastWriteTime As Any _ ) _ As Long Private Declare Function FileTimeToSystemTime _ Lib "kernel32" _ ( _ lpFileTime As FILETIME, _ lpSystemTime As SYSTEMTIME _ ) _ As Long Private Declare Function CreateFile _ Lib "kernel32" _ Alias "CreateFileA" _ ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ lpSecurityAttributes As Any, _ 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 Declare Function LocalFileTimeToFileTime _ Lib "kernel32" _ ( _ lpLocalFileTime As FILETIME, _ lpFileTime As FILETIME _ ) _ As Long Private Declare Function FileTimeToLocalFileTime _ Lib "kernel32" _ ( _ lpFileTime As FILETIME, _ lpLocalFileTime As FILETIME _ ) _ As Long
Function GetFileCreationTime(FilePath As String) As Date Dim hfile As Long Dim fileCreationTime As FILETIME Dim sysCreationTime As SYSTEMTIME Dim fileLocalTime As FILETIME hfile = CreateFile( _ FilePath & vbNullChar, _ GENERIC_READ, _ FILE_SHARE_READ, _ ByVal 0&, _ OPEN_EXISTING, _ 0, _ 0)
If hfile <> INVALID_HANDLE_VALUE Then If GetFileTime(hfile, _ fileCreationTime, _ ByVal 0&, _ ByVal 0& _ ) Then
If FileTimeToLocalFileTime( _ fileCreationTime, _ fileLocalTime _ ) Then If FileTimeToSystemTime( _ fileLocalTime, _ sysCreationTime _ ) Then GetFileCreationTime = DateSerial( _ sysCreationTime.wYear, _ sysCreationTime.wMonth, _ sysCreationTime.wDay _ ) _ + _ TimeSerial( _ sysCreationTime.wHour, _ sysCreationTime.wMinute, _ sysCreationTime.wSecond _ ) Else Err.Raise 1003, , _ "Impossible de convertir la date de création du fichier en date système" End If Else Err.Raise 1002, , _ "Impossible de convertir la date de création du fichier en date locale de fichier" End If Else Err.Raise 1001, , _ "Impossible de retrouver la date de création du fichier" End If
CloseHandle hfile Else Err.Raise 1000, , "Impossible d'ouvrir le fichier" End If End Function
J'ai besoin a l'aide de VB6 de connaitre la date de création d'un fichier sur mon disque dur. Merci de m'aider dans cette besogne car il fait trop chaud ? :-)
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime 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
wMilliseconds As Integer
End Type
Private Declare Function GetFileTime _
Lib "kernel32" _
( _
ByVal hfile As Long, _
lpCreationTime As Any, _
lpLastAccessTime As Any, _
lpLastWriteTime As Any _
) _
As Long
Private Declare Function FileTimeToSystemTime _
Lib "kernel32" _
( _
lpFileTime As FILETIME, _
lpSystemTime As SYSTEMTIME _
) _
As Long
Private Declare Function CreateFile _
Lib "kernel32" _
Alias "CreateFileA" _
( _
ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
lpSecurityAttributes As Any, _
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 Declare Function LocalFileTimeToFileTime _
Lib "kernel32" _
( _
lpLocalFileTime As FILETIME, _
lpFileTime As FILETIME _
) _
As Long
Private Declare Function FileTimeToLocalFileTime _
Lib "kernel32" _
( _
lpFileTime As FILETIME, _
lpLocalFileTime As FILETIME _
) _
As Long
Function GetFileCreationTime(FilePath As String) As Date
Dim hfile As Long
Dim fileCreationTime As FILETIME
Dim sysCreationTime As SYSTEMTIME
Dim fileLocalTime As FILETIME
hfile = CreateFile( _
FilePath & vbNullChar, _
GENERIC_READ, _
FILE_SHARE_READ, _
ByVal 0&, _
OPEN_EXISTING, _
0, _
0)
If hfile <> INVALID_HANDLE_VALUE Then
If GetFileTime(hfile, _
fileCreationTime, _
ByVal 0&, _
ByVal 0& _
) Then
If FileTimeToLocalFileTime( _
fileCreationTime, _
fileLocalTime _
) Then
If FileTimeToSystemTime( _
fileLocalTime, _
sysCreationTime _
) Then
GetFileCreationTime = DateSerial( _
sysCreationTime.wYear, _
sysCreationTime.wMonth, _
sysCreationTime.wDay _
) _
+ _
TimeSerial( _
sysCreationTime.wHour, _
sysCreationTime.wMinute, _
sysCreationTime.wSecond _
)
Else
Err.Raise 1003, , _
"Impossible de convertir la date de création du
fichier en date système"
End If
Else
Err.Raise 1002, , _
"Impossible de convertir la date de création du fichier
en date locale de fichier"
End If
Else
Err.Raise 1001, , _
"Impossible de retrouver la date de création du fichier"
End If
CloseHandle hfile
Else
Err.Raise 1000, , "Impossible d'ouvrir le fichier"
End If
End Function
J'ai besoin a l'aide de VB6 de connaitre la date de création d'un
fichier sur mon disque dur. Merci de m'aider dans cette besogne car
il fait trop chaud ? :-)
Private Type FILETIME dwLowDateTime As Long dwHighDateTime 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 wMilliseconds As Integer End Type
Private Declare Function GetFileTime _ Lib "kernel32" _ ( _ ByVal hfile As Long, _ lpCreationTime As Any, _ lpLastAccessTime As Any, _ lpLastWriteTime As Any _ ) _ As Long Private Declare Function FileTimeToSystemTime _ Lib "kernel32" _ ( _ lpFileTime As FILETIME, _ lpSystemTime As SYSTEMTIME _ ) _ As Long Private Declare Function CreateFile _ Lib "kernel32" _ Alias "CreateFileA" _ ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ lpSecurityAttributes As Any, _ 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 Declare Function LocalFileTimeToFileTime _ Lib "kernel32" _ ( _ lpLocalFileTime As FILETIME, _ lpFileTime As FILETIME _ ) _ As Long Private Declare Function FileTimeToLocalFileTime _ Lib "kernel32" _ ( _ lpFileTime As FILETIME, _ lpLocalFileTime As FILETIME _ ) _ As Long
Function GetFileCreationTime(FilePath As String) As Date Dim hfile As Long Dim fileCreationTime As FILETIME Dim sysCreationTime As SYSTEMTIME Dim fileLocalTime As FILETIME hfile = CreateFile( _ FilePath & vbNullChar, _ GENERIC_READ, _ FILE_SHARE_READ, _ ByVal 0&, _ OPEN_EXISTING, _ 0, _ 0)
If hfile <> INVALID_HANDLE_VALUE Then If GetFileTime(hfile, _ fileCreationTime, _ ByVal 0&, _ ByVal 0& _ ) Then
If FileTimeToLocalFileTime( _ fileCreationTime, _ fileLocalTime _ ) Then If FileTimeToSystemTime( _ fileLocalTime, _ sysCreationTime _ ) Then GetFileCreationTime = DateSerial( _ sysCreationTime.wYear, _ sysCreationTime.wMonth, _ sysCreationTime.wDay _ ) _ + _ TimeSerial( _ sysCreationTime.wHour, _ sysCreationTime.wMinute, _ sysCreationTime.wSecond _ ) Else Err.Raise 1003, , _ "Impossible de convertir la date de création du fichier en date système" End If Else Err.Raise 1002, , _ "Impossible de convertir la date de création du fichier en date locale de fichier" End If Else Err.Raise 1001, , _ "Impossible de retrouver la date de création du fichier" End If
CloseHandle hfile Else Err.Raise 1000, , "Impossible d'ouvrir le fichier" End If End Function
J'ai besoin a l'aide de VB6 de connaitre la date de création d'un fichier sur mon disque dur. Merci de m'aider dans cette besogne car il fait trop chaud ? :-)