[VBS] recuperer taille fichier
JohnDoe
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je cherche à créer un script pour recuperer la taille des fichiers ds un repertoire...J'ai essayé le code suivant (fonctionne pas...)...
si qq1 voit le pb, ça m'aiderait bcp...
Merci
je cherche à créer un script pour recuperer la taille des fichiers ds un repertoire...J'ai essayé le code suivant (fonctionne pas...)...
' Création de l'objet FileSystemObject :
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Connexion au répertoire :
Set MonRepertoire = objFSO.GetFolder("D:\OLAP")
' Création de la collection :
Set collecRep = MonRepertoire.Subfolders
Set CollecFichier = MonRepertoire.Files
Set fichier_sortie = objFSO.CreateTextFile("D:\test.csv", 2)
' Récupération des noms de fichier du répertoire :
For Each Rep in
For Each Rep in CollecReps
fichier_sortie.write(Rep.Path & ";" & Rep.filesize & vbcrlf)
Next
For Each File in CollecFichier
fichier_sortie.write(File.Path & ";" & File.filesize & vbcrlf)
Next
si qq1 voit le pb, ça m'aiderait bcp...
Merci
1 réponse
-
Bonjour,
Pour ce genre de traitement, je vous recommande la récursivité !
Dim Rep, oDossier, oFichier ' Création de l'objet FileSystemObject : Set objFSO = CreateObject("Scripting.FileSystemObject") ' Connexion au répertoire : Set MonRepertoire = objFSO.GetFolder("D:\OLAP") ' Création de la collection : Set collecRep = MonRepertoire.Subfolders Set CollecFichier = MonRepertoire.Files Set fichier_sortie = objFSO.CreateTextFile("D:\test.csv", 2) On Error Resume Next If (MonRepertoire.RootFolder.Files.Count > 0) Then For Each oFichier In CollecFichier fichier_sortie.writeline(File.Path & ";" & File.filesize) Next End If If (collecRep.SubFolders.Count > 0) Then For Each oDossier In collecRep Call ListeFichier(oDossier) Next End If Wscript.Echo "Fin de traitement" Wscript.Quit ' ' Sub ListeFichier(ByVal oRepertoire) ' Routine récursive Dim oDossier On Error Resume Next If (oRepertoire.Files.Count > 0) Then For Each oFichier In oRepertoire.Files fichier_sortie.writeline(File.Path & ";" & File.filesize) Next End If If (oRepertoire.SubFolders.Count > 0) Then For Each oDossier In oRepertoire.SubFolders Call ListeFichier(oDossier) Next End If End Sub '
Lupin