[C++] Modifier une propriété d'un fichier. [Résolu]

sabbator 31 Messages postés dimanche 20 mars 2005Date d'inscription 16 avril 2008 Dernière intervention - 15 avril 2008 à 15:19 - Dernière réponse : cs_jfrancois 482 Messages postés vendredi 26 août 2005Date d'inscription 5 décembre 2009 Dernière intervention
- 16 avril 2008 à 21:46
Bonjour à tous !
Je programme C++  (en ce moment avec la QUI QT)  et je cherche à modifier la date de dernière modification associée à un fichier, en espérant qu'il existe une fonction pour ca dans une lib.
Je suis, sinon, pret à contourner le problème: j'ai par exemple pensé à modifier le fichier puis le ré-enregistrer afin que la date de modification soit celle du système, mais ce n'est pas le meilleur moyen je suppose ! :D

J'espere que vous pourrez m'aider,
Merci d'avance,

SabbatoR
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_jfrancois 482 Messages postés vendredi 26 août 2005Date d'inscription 5 décembre 2009 Dernière intervention - 15 avril 2008 à 15:29
3
Merci
Bonjour,

SetFileTime() qui permet de modifier les 3 horodates d'un fichier (GetFileTime() pour les lire).

Jean-François

Merci cs_jfrancois 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jfrancois
Meilleure réponse
cs_jfrancois 482 Messages postés vendredi 26 août 2005Date d'inscription 5 décembre 2009 Dernière intervention - 16 avril 2008 à 16:29
3
Merci
Bonjour,

GetFileTime() et SetFileTime() aussi !
Avec un handle sur un dossier (CreateFile() avec le flag FILE_FLAG_BACKUP_SEMANTICS).

Exemple :

#include <stdio.h>
#include <windows.h>
void main()
{
   // --- Handle sur le dossier
   HANDLE hFile = CreateFile
   (
       "C:\\Windows"
      ,GENERIC_READ | GENERIC_WRITE
      ,FILE_SHARE_READ | FILE_SHARE_DELETE
      ,0
      ,OPEN_EXISTING
      ,FILE_FLAG_BACKUP_SEMANTICS
      ,NULL
   );

   // --- Lire les horodates du dossier
   FILETIME FileTimeCreate,FileTimeAccess,FileTimeModify;
   GetFileTime(hFile,&FileTimeCreate,&FileTimeAccess,&FileTimeModify);




   // --- Convertir en horodates système (en TU)

   SYSTEMTIME SystemTimeCreate,SystemTimeAccess,SystemTimeModify;
   FileTimeToSystemTime(&FileTimeCreate,&SystemTimeCreate);
   FileTimeToSystemTime(&FileTimeAccess,&SystemTimeAccess);
   FileTimeToSystemTime(&FileTimeModify,&SystemTimeModify);

   // --- Montrer les horodates du dossier
   printf("Creation              : %02d/%02d/%04d - %02d:%02d:%02d\n"
         ,SystemTimeCreate.wDay,SystemTimeCreate.wMonth,SystemTimeCreate.wYear
         ,SystemTimeCreate.wHour,SystemTimeCreate.wMinute,SystemTimeCreate.wSecond);
   printf("Dernier acces         : %02d/%02d/%04d - %02d:%02d:%02d\n"
         ,SystemTimeAccess.wDay,SystemTimeAccess.wMonth,SystemTimeAccess.wYear
         ,SystemTimeAccess.wHour,SystemTimeAccess.wMinute,SystemTimeAccess.wSecond);
   printf("Derniere modification : %02d/%02d/%04d - %02d:%02d:%02d\n"
         ,SystemTimeModify.wDay,SystemTimeModify.wMonth,SystemTimeModify.wYear
         ,SystemTimeModify.wHour,SystemTimeModify.wMinute,SystemTimeModify.wSecond);
}








Jean-François

Merci cs_jfrancois 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jfrancois
Meilleure réponse
cs_jfrancois 482 Messages postés vendredi 26 août 2005Date d'inscription 5 décembre 2009 Dernière intervention - 16 avril 2008 à 21:46
3
Merci
Pour SetFileTime() avec un fichier je connaissais pour avoir déjà utilisé GetFileTime().
Pour la même chose avec un dossier j'ai cherché change time folder setfiletime (pour avoir quelque chose d'analogue à SetFileTime() si possible) sous Google et la première réponse (http://vbnet.mvps.org/index.html?code/fileapi/folderdatetime.htm) donnait une solution que j'ai testé car ça peut servir !

Jean-François

Merci cs_jfrancois 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jfrancois
sabbator 31 Messages postés dimanche 20 mars 2005Date d'inscription 16 avril 2008 Dernière intervention - 15 avril 2008 à 15:35
0
Merci
Merci infiniment :D
Je vais me renseigner sur la manière de l'utiliser :)

A bientôt,
SabbatoR
Commenter la réponse de sabbator
sabbator 31 Messages postés dimanche 20 mars 2005Date d'inscription 16 avril 2008 Dernière intervention - 16 avril 2008 à 15:25
0
Merci
Re bonjour !
Excusez le double post, je cherche à présent la même fonction mais pour les dossiers, est-ce possible ?

Merci d'avance,
A bientôt
SabbatoR
Commenter la réponse de sabbator
sabbator 31 Messages postés dimanche 20 mars 2005Date d'inscription 16 avril 2008 Dernière intervention - 16 avril 2008 à 21:28
0
Merci
Merci infiniment !
Je n'arrive pas à trouver ce genre d'informations lorsque je cherche sur google, comment fais tu pour toujours arriver à me renseigner aussi rapidement ?

Merci encore,
SabbatoR
Commenter la réponse de sabbator

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.