[R] Nombre de version de fichiers

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

[R] Nombre de version de fichiers

#1

Message par Davyly »

Bonsoir,
Je cherche à réaliser un système de gestion, de nombre de versions de fichiers. Je m'explique, je zip un dossier dont le format de sortie est "Backup_20090226.zip". Le souci c'est que maintenant je me retrouve avec 26Go et plus d'une centaine de fichiers zip. Comment garder les x derniers fichiers de backup ? Un backup n'est pas réalisé tous les jours. J'ai cherché sur le forum mais j'ai pas trouvé, peut-être mal cherché. Avez-vous une idée ? moi pas du tout. Merci d'avance.
Modifié en dernier par Davyly le lun. 02 mars 2009 21:18, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Nombre de version de fichiers

#2

Message par Tlem »

Peut être une piste par ici.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [..] Nombre de version de fichiers

#3

Message par FernandG »

Bonsoir,

En supposant que tes fichiers "Backup" sont stockés dans un dossier dédié, ce code devrait correspondre à ta demande :

Code : Tout sélectionner

#Include <File.au3>
#Include <Array.au3>
;-------------
$backup_path = @DesktopDir & "\Backup"
$nb_version = 7
;-----------------------
$FileList=_FileListToArray($backup_path, "*.zip", 1)
If @Error = 1 Then
    MsgBox(16, "Erreur", "Aucun fichier correspondant à la structure de la recherche.")
    Exit
EndIf
If $FileList[0] > $nb_version Then
    For $i = $FileList[0] - $nb_version To 1 Step -1
        ;MsgBox(64, "Info", $backup_path & "\" & $FileList[$i])
        FileDelete($backup_path & "\" & $FileList[$i])
    Next
EndIf
Exit
Voilà.
Tiens nous au courant.

Bonne soirée, nuit.
AutoITement.
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

Re: [..] Nombre de version de fichiers

#4

Message par Davyly »

bonsoir, aujourd'hui j'ai testé le code de FernandG en l'adaptant un peu à mes besoins et c'est parfait. Cela fonctionne à merveille, rien à dire ou plutôt merci beaucoup pour votre aide. A bientôt.
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [R] Nombre de version de fichiers

#5

Message par FernandG »

Bonsoir,

Dans un autre registre et beaucoup plus complet, tu trouveras ci dessous un autre type de code écrit fin de semaine dernière. A la différence de celui donné plus haut, celui là est beaucoup plus complet et ne s'appuie pas que sur le nom du fichier mais surtout sur la date de création de ce dernier, de ton "backup". A toi maintenant de changer la variable du nombre de fichier et si besoin de la structure de recherche de tes fichiers "backup".
► Afficher le texte
Je tiens à remercier tout particulièrement Strofe pour l'écriture du noyau de ce code, l'algorithme de type "Tri bulle".

Un code qui peux servir à nombreux d'entre nous, à vous de me le dire.

Bonne soirée, bonne nuit.
AutoItement.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Nombre de version de fichiers

#6

Message par Tlem »

L'approche est intéressante. ;)

Voici une alternative qui me parait plus simple bien que le code soit approximativement de la même longueur.
Cette solution ce verra plus rapide sur un nombre plus ou moins important de révision de fichier, car la commande Redim à la fâcheuse tendance à ralentir un code.
► Afficher le texteCode
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [R] Nombre de version de fichiers

#7

Message par FernandG »

Idem, ton approche est aussi intéressante. ;-) Tout regrouper dans une "colonne" unique, fallait y penser. Le FileGetTime permettant le sort et à coup de StringSplit, j'aime bien. :o

Aller, histoire de trouver quelque chose à dire, je remplacerais la ligne :

Code : Tout sélectionner

$Filelst = $Filelst & $Date & "#" & $path_backup & $File & @CR
Par

Code : Tout sélectionner

$Filelst &= $Date & "#" & $path_backup & $File & @CR
:P Comment ça j'abuse ... ?!?! Bon ok je retourne à un autre "post" ;-)

Bonne soirée, bonne nuit.
AutoITement.
Répondre