Modifier la date de centaines de fichiers
Bonjour,
J'essaie en vain de modifier la date d'un fichier.
J'arrive a récupérer la date dans des variables, modifier ces variables les récrire de la HANDLE mais à la libération du HANDLE, les modifications ne sont pas prises en compte.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
WIN32_FIND_DATA* lpFindFileData = new WIN32_FIND_DATA;
HANDLE hFile = ::FindFirstFile(NomFichier, lpFindFileData);
// Lecture
LowCreationTime = ((*lpFindFileData).ftCreationTime).dwLowDateTime;
HighCreationTime = ((*lpFindFileData).ftCreationTime).dwHighDateTime;
// Creation du QWORD
HighLowDate=QWORD(HighCreationTime)<<32;
HighLowDate = HighLowDate + QWORD(LowCreationTime); // bon
// Modification
QInterval = (QWORD(Interval) * QWORD(600000000));
HighLowDate = HighLowDate + QInterval; // bon
// Découpage
HighCreationTime = DWORD(HighLowDate >> 32); // bon
QIntermediaire = QWORD(HighCreationTime)<<32;
LowCreationTime = DWORD(HighLowDate - QIntermediaire);
// Ecriture
((*lpFindFileData).ftCreationTime).dwLowDateTime = LowCreationTime;
((*lpFindFileData).ftCreationTime).dwHighDateTime = HighCreationTime;
// Re lecture
LowCreationTime = ((*lpFindFileData).ftCreationTime).dwLowDateTime;
HighCreationTime = ((*lpFindFileData).ftCreationTime).dwHighDateTime;
Texte.Format(_T("%u"),HighCreationTime);
CE_High_Creation.SetWindowTextW(Texte);
Texte.Format(_T("%u"),LowCreationTime);
CE_Low_Creation.SetWindowTextW(Texte);
FindClose(hFile);
//delete lpFindFileData; |
Dans cet exemple, le code fonctionne bien (comme je le souhaite) jusqu'au "FindClose"ou "Delete lpFindFileData"
Et quand je teste le fichier, aucune modification ne c'est passée!
Quelqu'un aurai-t-il une idée, ou une meilleur solution?
Merci