'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
               (
geocities.com/p_villeneuve)