Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1589 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  changer la date de modification de certains fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changer la date de modification de certains fichier

n°2142412
yozyoz21
Posté le 15-05-2012 à 09:45:44  profilanswer
 

Bonjour.  
 
Mon autoradio m'affiche la liste des dossiers en fonction de la date de dernière modif.  
Existerait il un moyen de customiser à mon goût la liste des dernières modifs par perl ?  
 
Je souhaite développer un script qui me donne la liste des données puis me propose d'agancer les dates de modifs dans l'ordre ou je voudrais.
 
 
yoz
 
Bépo keyboard Addict

mood
Publicité
Posté le 15-05-2012 à 09:45:44  profilanswer
 

n°2142433
gilou
Modérateur
Modzilla
Posté le 15-05-2012 à 11:55:15  profilanswer
 

Tiens, je t'ai pondu ça vite fait:

Code :
  1. #!/usr/local/nin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my @files = ('./dir1', './dir2', './dir3'); #liste dans l'ordre voulu
  6. my $time = time();
  7. $time -= (@files - 1)*60;
  8. foreach my $file (@files){
  9.  if (-e $file){
  10.    utime($time, $time, $file);
  11.    $time +=60;
  12.  }
  13. }


1) Tu met tes répertoires en liste dans l'ordre que tu veux avoir:
my @files = ('./japnames','./grabmanga'); #liste dans l'ordre voulu
ici, le script est dans le même répertoire que tes répertoires à trier, mais sinon, tu fais avant
my $path = 'le path vers le repertoire ou sont ceux à trier';
cd $path;
 
2) on récupère l'heure courante
my $time = time();
On va reculer d'autant de minute (sur mon PC, le tri se fait vis à vis des minutes apparemment) qu'il y a de répertoires dans la liste (en fait, moins un pour revenir a l'heure courante en dernière valeur utilisée)
$time -= (@files - 1)*60;
 
3) on boucle sur chaque répertoire:
On vérifie qu'il existe bien:
if (-e $file)
on met l'heure dernier accès et de modification à $time avec utime dont le proto est utime($acces_time, $modif_time, $file)  
utime($time, $time, $file);  
puis on avance $time de 1mn
$time +=60;
 
Dans mon exemple, si je lance la commande à 12h, je vais avoir:
dir1 date de modif: aujourd'hui a 11h58
dir2 date de modif: aujourd'hui a 11h59
dir3 date de modif: aujourd'hui a 12h
 
A+,


Message édité par gilou le 15-05-2012 à 12:00:33

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2142552
yozyoz21
Posté le 16-05-2012 à 00:48:22  profilanswer
 

Merci beaucoup pour ta réponse.  
Tu m'as beaucoup avancé sur le sujet.  
 
yoz
 
Bépo Addict


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  changer la date de modification de certains fichier

 

Sujets relatifs
Récupération de données dans un fichier HTML[C] Remplir un tableau 2 dimensions avec un fichier
bug sur fichier excelDate dernier enregistrement
Écriture dans un fichierLecture de fichier
Remplir le fichier Config de PhpmyAdminImpossible d'écrire dans un fichier avec une applet signée
[Batch] recuperer ping dans fichier txtRequête selon date de chaque enregistrement
Plus de sujets relatifs à : changer la date de modification de certains fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR