Y at-il un appel de fonction C qui peut modifier la dernière date de modification d'un fichier ou d'un répertoire dans Windows?Comment puis-je utiliser C pour modifier la dernière date de modification d'un fichier dans Windows?
Q
Comment puis-je utiliser C pour modifier la dernière date de modification d'un fichier dans Windows?
1
A
Répondre
1
Oui. Vous pouvez utiliser la fonction API SetFileTime.
2
Utilisation SetFileTime:
BOOL WINAPI SetFileTime(
__in HANDLE hFile,
__in_opt const FILETIME *lpCreationTime,
__in_opt const FILETIME *lpLastAccessTime,
__in_opt const FILETIME *lpLastWriteTime
);
Son dans winbase.h, donc vous avez juste besoin d'inclure windows.h
EDIT: Je collais la mauvaise fonction.
5
Vous pouvez utiliser la fonction SetFileTime, pour les répertoires, vous devez utiliser la fonction CreateFile avec le drapeau FILE_FLAG_BACKUP_SEMANTICS pour obtenir le handle de répertoire et de l'utiliser comme paramètre de descripteur de fichier du SetFileTime comme ceci:
hFolder = CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_DIRECTORY | FILE_FLAG_BACKUP_SEMANTICS, NULL);
merci, il me manquait le FILE_FLAG_BACKUP_SEMANTICS, mais vous me sauvez un jour – Stefano