Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CopyFile date création erronée

3 réponses
Avatar
flomen
J'utilise copyfile pour effectuer des sauvegardes, ça fonctionne bien
cependant la date de création sur le disque dur est erronée.
Que dois-je faire ?
D'avance merci

3 réponses

Avatar
Gafish
Bonjour aussi,

flomen wrote:
J'utilise copyfile pour effectuer des sauvegardes, ça fonctionne bien
cependant la date de création sur le disque dur est erronée.
Que dois-je faire ?
D'avance merci


C'est à dire, tu as quelle date comme date de création ?

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
Bonjour flomen,

Tu voulais dire FileCopy et je suppose que tu souhaiterais qu'une fois
la copie terminée, le fichier ainsi copié ait pour date la date de
l'opération de copie et non la date de création du fichier initial.
FileCopy fait une copie sans modification des attributs du fichier (date
création, date derniere modif ...)

Si c'est bien ce cas de figure, il te faut utiliser les APIs je pense

Dans un module de formulaire (ou standard) en fonction du besoin,
sous Option Compare Database :

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 Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
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 SetFileTime Lib "kernel32" _
(ByVal hFile As Long, lpCreationTime As FILETIME, _
lpLastAccessTime 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
Private Declare Function LocalFileTimeToFileTime Lib "kernel32" _
(lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long


Sub CopieFichierEtModifDates()
Dim m_Date As Date, lngHandle As Long
Dim udtFileTime As FILETIME
Dim udtLocalTime As FILETIME
Dim udtSystemTime As SYSTEMTIME
m_Date = Now 'Format(Now, "DD-MM-YY")
' Adapter les chemins et noms de fichiers
Dim strFileCopie As String
Dim strFileACopier As String
strFileACopier = "C:Anonyme.xls"
strFileCopie = "C:AnonymeCopie.xls"
' Copie du fichier
FileCopy strFileACopier, strFileCopie: Stop
' Affectation date/heure
udtSystemTime.wYear = Year(m_Date)
udtSystemTime.wMonth = Month(m_Date)
udtSystemTime.wDay = Day(m_Date)
udtSystemTime.wDayOfWeek = Weekday(m_Date) - 1
udtSystemTime.wHour = Hour(m_Date)
udtSystemTime.wMinute = Minute(m_Date)
udtSystemTime.wSecond = Second(m_Date)
udtSystemTime.wMilliseconds = 0
' Modification des dates du fichier
' convert system time to local time
SystemTimeToFileTime udtSystemTime, udtLocalTime
' convert local time to GMT
LocalFileTimeToFileTime udtLocalTime, udtFileTime
' open the file to get the filehandle
lngHandle = CreateFile(strFileCopie, GENERIC_WRITE, _
FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, _
OPEN_EXISTING, 0, 0)
' change date/time property of the file
SetFileTime lngHandle, udtFileTime, udtFileTime, udtFileTime
' close the handle
CloseHandle lngHandle
' MsgBox à supprimer par la suite
MsgBox "The date of the file '" & strFileCopie _
& "' has been changed to" _
& Str$(m_Date), vbInformation + vbOKOnly
End Sub

Sur un bouton de commande de formulaire
Private Sub Commande0_Click()
Call CopieFichierEtModifDesDates
End Sub

Une bonne adresse : http://www.allapi.net/
et ici pour charger l'Api-Guide:
http://www.mentalis.org/agnet/apiguide.shtml



J'utilise copyfile pour effectuer des sauvegardes, ça fonctionne bien
cependant la date de création sur le disque dur est erronée.
Que dois-je faire ?
D'avance merci


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

Supprimer le STOP sur la ligne
FileCopy strFileACopier, strFileCopie: Stop
de la procédure CopieFichierEtModifDesDates
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr