'Programme principal '_________________ 'Déclaration Dim element 'Affectations dossier = Wscript.Arguments(0) Set shell = Wscript.CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") Set liste = fs.CreateTextFile("c:\liste.txt", True) Set Fichiers = fs.GetFolder(dossier).Files Set sous_dossiers = fs.GetFolder(dossier).Subfolders 'Ecriture de l'en-tête liste.WriteLine("Contenu du dossier " & dossier) liste.WriteLine("(le " & FormatDateTime(now(),vlongDate) & " à " & Time&")") liste.WriteLine(String(66, "_")) liste.WriteLine() 'Traitement des sous-dossiers eltype = "dossier" For Each element in sous_dossiers ligne element,eltype nbdoss = nbdoss+1 tailldoss = tailldoss + Element.Size Next 'Ligne vide de séparation liste.WriteLine() 'Traitement des fichiers eltype = "fichiers" For Each element in fichiers ligne element,eltype nbfich = nbfich+1 taillfich = taillfich + element.size Next 'Ecriture du bas de la liste et des totaux liste.WriteLine(String(66, "_")) liste.WriteLine() liste.WriteLine("Total:") If nbdoss<>0 Then liste.WriteLine(" " & nbdoss & "dossier(s) : " & Exprime(tailldoss)) liste.WriteLine(" " & nbfich & " fichier(s) : " & Exprime(taillfich)) liste.Close 'Impression de la liste avec Wordpad shell.Run "wordpad /p c:\liste.txt" , Hide, 1 fs.getfile("c:\liste.txt").Delete 'Sous-programme d'écriture d'une ligne de détail '------------------------------------------ Sub ligne(element,eltype) if eltype="fichier" Then nom=Left(element.Name, Len(element.Name)-4) ext=" " & Right(element.Name, 3) Else nom=element.Name ext="" End If taille = exprime(element.Size) 'Tronquer le nom si trop long If Len(nom) > 30 Then nom = left(nom, 27) & "..." 'Ecriture des données nom, extension, taille et date/heure dans 4 colonnes distinctes liste.Write(" " & nom & Space(30-Len(nom))) liste.Write(" " & ext & Space(5-Len(ext))) liste.Write(" " & Space(9-Len(taille))) & taille liste.Write(" " & element.DateLastModified) liste.WriteLine() End Sub 'Fonction de convertion de la taille en Ko ou Mo '---------------------------------------------------------------- Function Exprime(taille) if taille > 1048576 Then '(supérieur à 1 Mo) Exprime = CStr(FormatNumber(taille/1048576,2,,,-1)) & " Mo" Else '(Inférieure à 1 Mo) Exprime = CStr(FormatNumber(taille/1024,0,,,-1)) & " Ko" End If End Function