Modifier la date de dernière modification d’un fichier

Problème

Vous souhaitez modifier la date de dernière modification d’un fichier.

Solution

Utilisez utime().

Discussion

La fonction utime() permet de modifier la date de dernière modification d’un fichier ainsi que sa date de dernier accès. Indiquez le nom du fichier en premier argument et NULL en second si la date souhaitée est la date courante. Sinon, vous devrez remplir la structure de type struct utimbuf :


struct utimbuf 
{ 
  time_t actime;                /* date de dernier accès */ 
  time_t modtime;               /* date de dernière modification */ 
};
 

L’exemple suivant vous permet de changer la date de dernière modification en laissant la date de dernier accès inchangée :


int 
change_mtime (const char *filename, time_t mtime) 
{ 
  struct stat buf; 
  struct utimbuf u; 
  if (-1 == stat (filename, &buffer)) 
    return (-1); 
 
  u.actime = buf.st_atime; 
  u.modtime = mtime; 
  return (utime (filename, &u)); 
}
 

Prototypes


#include <sys/types.h> 
#include <utime.h> 
 
int utime (const char *path, const struct utimbuf *times);
 

Voir aussi la recette "Obtenir des informations sur un fichier", en particulier pour connaître la date de dernière modification et la page de manuel de utime().

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Obtenir des informations sur un fichier
Suivant
Créer un fichier