Page 1 sur 1

[R] Effacer des fichiers qui ont plus de 30 jours??

Posté : mar. 13 nov. 2007 21:54
par Kurser
Bonjour.

Voici ce que je veut faire
Je veux supprimer des fichiers qui date de plus de 30 jours..

Voici mon script mais il me supprime les plus recents

Code : Tout sélectionner

#include <date.au3>

$t=FileGetTime("C:\test2\*.txt",0)
$datefichier =_DateToDayValue ($t[0] , $t[1] , $t[2])
$datejour = _DateToDayValue (@YEAR, @MON, @MDAY)

if $datefichier > $datejour-30 then FileDelete("C:\test2\*.txt")
Merci , si quelqu'un pouvez m'apporter son aide.... :roll:

Posté : mar. 13 nov. 2007 23:27
par ani
salut

la question fut déjà posé, t'a bien cherché :D
regarde sur ce post

si ça ne va pas hésite pas :)

Posté : mer. 14 nov. 2007 17:32
par Kurser
Salut ani!!!!

J'ai essayé ce code mais il me dit que la date de mon fichier n'est pas supérieur a 8 jours

Qu'est que t'en pense???

Code : Tout sélectionner

#Include <Date.au3>

$DateFic = FileGetTime("C:\test.txt", 1) ; sachant que le fichier a plus de 8 jours
$DateCalc = _DateDiff ( 'D' ,$DateFic , _NowCalc ( ) )
MsgBox ( 4096 , "" , "nombre de jour si sup à 8 ok :" & $DateCalc )
If $DateCalc > 8 then FileDelete ( "C:\test.txt")

Posté : mer. 14 nov. 2007 21:03
par Tlem
Vous faites deux erreurs dans votre script :

1 : Dans la commande $DateFic= FileGetTime ( "C:\test.txt" , 1 )
Vous demandez à autoIt de vous retourner la date de création du fichier au format tableau.
D'après votre deuxième ligne de code vous cherchiez à avoir : YYYYMMDDHHMMSS. il Vous faut donc mettre les bon paramètres pour que cela fonctionne.

2 : Dans la ligne $DateCalc = _DateDiff ( 'D' , $DateFic , _NowCalc ( ) ) vous voulez calculer un écart de date, en utilisant une mauvaise valeur !!
En l'occurrence, vous utilisez un élément vide ($DateFic) puisque c'est un tableau ( $DateFic[x])

Si je me réfère à votre code vous vouliez utiliser la différence sur une valeur de retour pour $DateFic de ce type : YYYYMMDDHHMMSS or la commande _DateDiff ne prend en compte qu'une valeur dans ce format : "YYYY/MM/DD[ HH:MM:SS]", donc cela ne pourra pas fonctionner non plus.

Je vous conseil donc

Code : Tout sélectionner

#Include <Date.au3>

$DF = FileGetTime ( "C:\test.txt" , 0 ) ; Le 0 est pour connaitre la date du dernier accés. 
$DateCalc = $DF[0] & "/" & $DF[1] & "/" & $DF[2] ; On récupère la date du dernier accés au format yyyy/mm/jj 
$DateCalc = _DateDiff ( 'D' , $DateCalc , _NowCalc ( ) ) ; Calcul de la différence de date. 
MsgBox ( 4096 , "" , "Age du fichier : " & $DateCalc & " Jour ( s ) " ) 
If $DateCalc > 8 then FileDelete ( "C:\test.txt" )

Posté : mer. 14 nov. 2007 21:36
par Kurser
Merci Bcq Tlem....

Désolé pour ces erreurs.... :shock: je ne suis pas encore assez bon....

En tout cas je te remercie, je vais essayé le code et je te dit koi...:?:

A bientôt

Posté : mer. 14 nov. 2007 22:04
par Tlem
Kurser a écrit :Désolé pour ces erreurs.... :shock: je ne suis pas encore assez bon....
Ce n'est pas une question d'être bon (Je suis moi même incapable de sortir les fonctions de tête), mais il faut souvent lire l'aide (F1) et regarder les exemples.

Posté : jeu. 15 nov. 2007 21:53
par Kurser
:D :D :D Merci bcq le script est au point maintenant!!!!!!

c'est super :idea:

Posté : jeu. 15 nov. 2007 21:57
par Tlem
Image Image

Re: [R] Effacer des fichiers qui ont plus de 30 jours??

Posté : jeu. 13 sept. 2012 11:53
par Atoxis
Bonjour,

j'ai le message d'erreur suivant en mettant exactement le même code :

Image

Pouvez-vous m'aidez ?

Code : Tout sélectionner

#Include <Date.au3>
$1=IniRead("C:\Program Files\monappli\config.ini","DELFILES","JOURS","")
$2=IniRead("C:\Program Files\monappli\config.ini","MESPARAM","FILE1","")
$3=IniRead("C:\Program Files\monappli\config.ini","MESPARAM","FILE2","")
$DF = FileGetTime ( $2 , 0 )
$DateCalc = $DF[0] & "/" & $DF[1] & "/" & $DF[2] 
$DateCalc = _DateDiff ( 'D' , $DateCalc , _NowCalc ( ) ) 
If $DateCalc > $1 then FileDelete ( $2 )
$DF2 = FileGetTime ( $3 , 0 )
$DateCalc2 = $DF2[0] & "/" & $DF2[1] & "/" & $DF2[2]
$DateCalc2 = _DateDiff ( 'D' , $DateCalc2 , _NowCalc ( ) )
If $DateCalc2 > $1 then FileDelete ( $3 )
 
Merci d'avance.

Re: [R] Effacer des fichiers qui ont plus de 30 jours??

Posté : jeu. 13 sept. 2012 14:29
par Atoxis
Je viens de comprendre,
Désolé du dérangement.

Pour ceux qui ce pose la question, mais je doute qu'il y en ai qui fasse cette erreur, s'il n'y a pas de fichiers de l’extension que l'on contrôle, il n'y a donc pas de date à comparé donc erreur de script.

cordialement