[VBS] recuperer taille fichier

Fermé
JohnDoe - 3 nov. 2006 à 19:02
 Utilisateur anonyme - 3 nov. 2006 à 23:14
Bonjour,

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
A voir également:

1 réponse

Utilisateur anonyme
3 nov. 2006 à 23:14
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
2