Comment faire pour Renommer un fichier et actualiser sa date ?
Merci d'avance Salutations Papy Jean
-- Cordialement,
Jacques.
Papy Jean
Merci Jacques: ça marche. Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date. Comme les fichiers concernés sont des fichiers image (*.jpg), et qu'ils sont selectionnés sur la date de modif, je ne vois pas d'autre possibilité ??
Re-Merci Papy Jean
Merci Jacques: ça marche.
Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date.
Comme les fichiers concernés sont des fichiers image (*.jpg),
et qu'ils sont selectionnés sur la date de modif, je ne vois
pas d'autre possibilité ??
Merci Jacques: ça marche. Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date. Comme les fichiers concernés sont des fichiers image (*.jpg), et qu'ils sont selectionnés sur la date de modif, je ne vois pas d'autre possibilité ??
Re-Merci Papy Jean
Jacques93
Bonjour, Là ca ne tient pas sur une ligne, il y a peut être plus simple. Note : Il faut tenir compte de l'heure d'été / heure d'hiver, Si aujourd'hui (heure d'été +2:00) tu mets une date et heure d'hiver (novembre par ex +1:00) tu auras un décalage d'une heure. ============================================================= Option Explicit
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 FILETIME, _ lpLastAccessTime As FILETIME, _ lpLastWriteTime As FILETIME) 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 Sub GetSystemTime Lib "kernel32" _ (lpSystemTime As SYSTEMTIME)
Private Type TIME_ZONE_INFORMATION Bias As Long StandardName(32) As Integer StandardDate As SYSTEMTIME StandardBias As Long DaylightName(32) As Integer DaylightDate As SYSTEMTIME DaylightBias As Long End Type
Private Declare Function GetTimeZoneInformation Lib "kernel32" _ (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
Private Declare Function TzSpecificLocalTimeToSystemTime Lib "kernel32" _ (lpTimeZoneInformation As TIME_ZONE_INFORMATION, _ lpLocalTime As SYSTEMTIME, _ lpUniversalTime As SYSTEMTIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" _ (lpSystemTime As SYSTEMTIME, _ lpFileTime As FILETIME) As Long
Private Const OFS_MAXPATHNAME = 128
Private Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End Type
Private Const OF_READWRITE = &H2 Private Const HFILE_ERROR = -1 Private Declare Function OpenFile Lib "kernel32" _ (ByVal lpFileName As String, _ lpReOpenBuff As OFSTRUCT, _ ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long
Private Sub CommandButton1_Click() ChangeDate "C:Toto.txt", CDate("26/07/2005 10:11:12") End Sub
Private Sub ChangeDate(fName As String, dt As Date) Dim st As SYSTEMTIME Dim tz As TIME_ZONE_INFORMATION Dim tmCreate As FILETIME, tmLastAccess As FILETIME Dim tmLastWrite As FILETIME Dim tmNewTime As FILETIME Dim hFile As Long Dim ofs As OFSTRUCT
GetTimeZoneInformation tz With st .wDay = Day(dt) .wMonth = Month(dt) .wYear = Year(dt) .wHour = Hour(dt) .wMinute = Minute(dt) .wSecond = Second(dt) .wMilliseconds = 0 End With
'Conversion heure locale en heure UTC TzSpecificLocalTimeToSystemTime tz, st, st ' Conversion format d'heure systeme => heure fichier SystemTimeToFileTime st, tmNewTime
hFile = OpenFile(fName, ofs, OF_READWRITE) If hFile <> HFILE_ERROR Then GetFileTime hFile, tmCreate, tmLastAccess, tmLastWrite SetFileTime hFile, tmCreate, tmLastAccess, tmNewTime CloseHandle hFile End If
End Sub ========================================================== Papy Jean wrote:
Merci Jacques: ça marche. Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date. Comme les fichiers concernés sont des fichiers image (*.jpg), et qu'ils sont selectionnés sur la date de modif, je ne vois pas d'autre possibilité ??
Re-Merci Papy Jean
-- Cordialement,
Jacques.
Bonjour,
Là ca ne tient pas sur une ligne, il y a peut être plus simple.
Note : Il faut tenir compte de l'heure d'été / heure d'hiver,
Si aujourd'hui (heure d'été +2:00) tu mets une date et heure d'hiver
(novembre par ex +1:00) tu auras un décalage d'une heure.
============================================================= Option Explicit
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 FILETIME, _
lpLastAccessTime As FILETIME, _
lpLastWriteTime As FILETIME) 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 Sub GetSystemTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME)
Private Type TIME_ZONE_INFORMATION
Bias As Long
StandardName(32) As Integer
StandardDate As SYSTEMTIME
StandardBias As Long
DaylightName(32) As Integer
DaylightDate As SYSTEMTIME
DaylightBias As Long
End Type
Private Declare Function GetTimeZoneInformation Lib "kernel32" _
(lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
Private Declare Function TzSpecificLocalTimeToSystemTime Lib "kernel32" _
(lpTimeZoneInformation As TIME_ZONE_INFORMATION, _
lpLocalTime As SYSTEMTIME, _
lpUniversalTime As SYSTEMTIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME, _
lpFileTime As FILETIME) As Long
Private Const OFS_MAXPATHNAME = 128
Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
Private Const OF_READWRITE = &H2
Private Const HFILE_ERROR = -1
Private Declare Function OpenFile Lib "kernel32" _
(ByVal lpFileName As String, _
lpReOpenBuff As OFSTRUCT, _
ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Sub CommandButton1_Click()
ChangeDate "C:Toto.txt", CDate("26/07/2005 10:11:12")
End Sub
Private Sub ChangeDate(fName As String, dt As Date)
Dim st As SYSTEMTIME
Dim tz As TIME_ZONE_INFORMATION
Dim tmCreate As FILETIME, tmLastAccess As FILETIME
Dim tmLastWrite As FILETIME
Dim tmNewTime As FILETIME
Dim hFile As Long
Dim ofs As OFSTRUCT
GetTimeZoneInformation tz
With st
.wDay = Day(dt)
.wMonth = Month(dt)
.wYear = Year(dt)
.wHour = Hour(dt)
.wMinute = Minute(dt)
.wSecond = Second(dt)
.wMilliseconds = 0
End With
'Conversion heure locale en heure UTC
TzSpecificLocalTimeToSystemTime tz, st, st
' Conversion format d'heure systeme => heure fichier
SystemTimeToFileTime st, tmNewTime
hFile = OpenFile(fName, ofs, OF_READWRITE)
If hFile <> HFILE_ERROR Then
GetFileTime hFile, tmCreate, tmLastAccess, tmLastWrite
SetFileTime hFile, tmCreate, tmLastAccess, tmNewTime
CloseHandle hFile
End If
End Sub
========================================================== Papy Jean wrote:
Merci Jacques: ça marche.
Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date.
Comme les fichiers concernés sont des fichiers image (*.jpg),
et qu'ils sont selectionnés sur la date de modif, je ne vois
pas d'autre possibilité ??
Bonjour, Là ca ne tient pas sur une ligne, il y a peut être plus simple. Note : Il faut tenir compte de l'heure d'été / heure d'hiver, Si aujourd'hui (heure d'été +2:00) tu mets une date et heure d'hiver (novembre par ex +1:00) tu auras un décalage d'une heure. ============================================================= Option Explicit
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 FILETIME, _ lpLastAccessTime As FILETIME, _ lpLastWriteTime As FILETIME) 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 Sub GetSystemTime Lib "kernel32" _ (lpSystemTime As SYSTEMTIME)
Private Type TIME_ZONE_INFORMATION Bias As Long StandardName(32) As Integer StandardDate As SYSTEMTIME StandardBias As Long DaylightName(32) As Integer DaylightDate As SYSTEMTIME DaylightBias As Long End Type
Private Declare Function GetTimeZoneInformation Lib "kernel32" _ (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
Private Declare Function TzSpecificLocalTimeToSystemTime Lib "kernel32" _ (lpTimeZoneInformation As TIME_ZONE_INFORMATION, _ lpLocalTime As SYSTEMTIME, _ lpUniversalTime As SYSTEMTIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" _ (lpSystemTime As SYSTEMTIME, _ lpFileTime As FILETIME) As Long
Private Const OFS_MAXPATHNAME = 128
Private Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End Type
Private Const OF_READWRITE = &H2 Private Const HFILE_ERROR = -1 Private Declare Function OpenFile Lib "kernel32" _ (ByVal lpFileName As String, _ lpReOpenBuff As OFSTRUCT, _ ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long
Private Sub CommandButton1_Click() ChangeDate "C:Toto.txt", CDate("26/07/2005 10:11:12") End Sub
Private Sub ChangeDate(fName As String, dt As Date) Dim st As SYSTEMTIME Dim tz As TIME_ZONE_INFORMATION Dim tmCreate As FILETIME, tmLastAccess As FILETIME Dim tmLastWrite As FILETIME Dim tmNewTime As FILETIME Dim hFile As Long Dim ofs As OFSTRUCT
GetTimeZoneInformation tz With st .wDay = Day(dt) .wMonth = Month(dt) .wYear = Year(dt) .wHour = Hour(dt) .wMinute = Minute(dt) .wSecond = Second(dt) .wMilliseconds = 0 End With
'Conversion heure locale en heure UTC TzSpecificLocalTimeToSystemTime tz, st, st ' Conversion format d'heure systeme => heure fichier SystemTimeToFileTime st, tmNewTime
hFile = OpenFile(fName, ofs, OF_READWRITE) If hFile <> HFILE_ERROR Then GetFileTime hFile, tmCreate, tmLastAccess, tmLastWrite SetFileTime hFile, tmCreate, tmLastAccess, tmNewTime CloseHandle hFile End If
End Sub ========================================================== Papy Jean wrote:
Merci Jacques: ça marche. Je sais maintenant renomme un fichier, grâce à toi.
Il me reste à savoir comment changer la date. Comme les fichiers concernés sont des fichiers image (*.jpg), et qu'ils sont selectionnés sur la date de modif, je ne vois pas d'autre possibilité ??
Re-Merci Papy Jean
-- Cordialement,
Jacques.
Papy Jean
Merci beaucoup Jacques 93
J'ai essayé et ça marche. j'avoue humblement que tu emploies une technologie que j'ignore. Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt J'utilise Date$ et Time$ de l'ordinateur comme date source.
Encore merci. Papy Jean
Merci beaucoup Jacques 93
J'ai essayé et ça marche.
j'avoue humblement que tu emploies une technologie que j'ignore.
Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt
J'utilise Date$ et Time$ de l'ordinateur comme date source.
J'ai essayé et ça marche. j'avoue humblement que tu emploies une technologie que j'ignore. Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt J'utilise Date$ et Time$ de l'ordinateur comme date source.
Encore merci. Papy Jean
Jacques93
Bonjour, Content pour toi :-)
Pour récupérer la date de Modif d'un fichier, c'est simple :
FileDateTime (NomDuFichier)
Par contre je ne connais pas de fonction équivalente pour modifier cette date. En sachant que chaque fichier a :
- Une date de création - Une date de dernière modification - Une date de dernier accès
que le format des dates de fichier n'est le même que celui de la date système, qu'il faut prendre en compte les fuseaux horaires, etc ... le méthode proposée utilise donc directement les API windows.
Papy Jean wrote:
Merci beaucoup Jacques 93
J'ai essayé et ça marche. j'avoue humblement que tu emploies une technologie que j'ignore. Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt J'utilise Date$ et Time$ de l'ordinateur comme date source.
Encore merci. Papy Jean
-- Cordialement,
Jacques.
Bonjour,
Content pour toi :-)
Pour récupérer la date de Modif d'un fichier, c'est simple :
FileDateTime (NomDuFichier)
Par contre je ne connais pas de fonction équivalente pour modifier
cette date. En sachant que chaque fichier a :
- Une date de création
- Une date de dernière modification
- Une date de dernier accès
que le format des dates de fichier n'est le même que celui de la date
système, qu'il faut prendre en compte les fuseaux horaires, etc ...
le méthode proposée utilise donc directement les API windows.
Papy Jean wrote:
Merci beaucoup Jacques 93
J'ai essayé et ça marche.
j'avoue humblement que tu emploies une technologie que j'ignore.
Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt
J'utilise Date$ et Time$ de l'ordinateur comme date source.
Pour récupérer la date de Modif d'un fichier, c'est simple :
FileDateTime (NomDuFichier)
Par contre je ne connais pas de fonction équivalente pour modifier cette date. En sachant que chaque fichier a :
- Une date de création - Une date de dernière modification - Une date de dernier accès
que le format des dates de fichier n'est le même que celui de la date système, qu'il faut prendre en compte les fuseaux horaires, etc ... le méthode proposée utilise donc directement les API windows.
Papy Jean wrote:
Merci beaucoup Jacques 93
J'ai essayé et ça marche. j'avoue humblement que tu emploies une technologie que j'ignore. Mais j'arrive à l'utiliser, c'est le principal.
Pour les heures d'hiver et d'été, je ne suis pas à une heure prêt J'utilise Date$ et Time$ de l'ordinateur comme date source.