Effacer fichier/dossiers en fonction de leur derniere date de modification.

Contenu du snippet

Ce code est ecrit en Vbscript, pour dans un dossier effacer les fichiers et dossiers en fonction de leur derniere date de modification.

je suis un debutant, en fait j'ai appris le vbs en faisant ce script (je ne suis pas developpeur mais admin reseaux)

je l'ai commenté le plus possible pour les debutants, il y a des fonctions que l'on peut reprendre : "recursive, appel de fonction, utilisation du FSO, ..."

soyez indulgent, je poste plus pour les debutants qui galére, comme j'ai galeré, que pour la posteritée (^^) un peut de fiertée personnelle quand meme.

je n'ai pas trouvé de source qui y resemble (ou alors pleins de sources qui faut assenbler ) si elle existe deja supprimer la !

Source / Exemple :


on error resume next
'declaration des variables
Dim folder
dim Subfolder
dim path
Dim FSO
Dim B
'instantation du file system object (FSO)
Set FSO = CreateObject("Scripting.FileSystemObject")

'initialisation de la variable contenant le chemin du repertoire racine
path = "D:\test_transit\Transit"

'appel de la fonction recurcive avec comme argument le chemin du repertoire
'racine
recurcive path

function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
                           'des dossiers

set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
                                    'racine
set Subfolder = folder.SubFolders   'definition de la varibale pour les S/dossiers

for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
        Set fic = A.Files 'definition de la variables toucher les fichier des dossier

        fichier fic 'appel de la fontion fixhier
        recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
        
next
end function 'fin de la fonction

function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A

For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
        Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
            If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
            msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
            'FSO.DeleteFile f, force = yes
            end if 'fin du SI
    next
    
end function 'fin de la fonction

Set fic = folder.Files
fichier fic

       set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
       For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine
                If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
                 msgbox B & B.size 'effacer le dossier
                 'FSO.DeleteFolder B, force = yes
                End If 'fin du SI
		
        Next

Conclusion :


j'ai mis en commentaire les commandes pour la supresion et mis des MSGBOX a la place par securitée (ne rigoler pas on ne sait jamais !)

j'attend vos remarques, critiques, amelorations possibles

MERCI !

A voir également

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.