cs_barada
Messages postés54Date d'inscriptionvendredi 26 mars 2004StatutMembreDernière intervention13 août 2015
-
9 déc. 2008 à 13:12
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
9 déc. 2008 à 22:50
Bonjour le forum
Je me tourne vers vous afin pour une modif de script sous Vista. Je m' expliaque j' ai récupéré un script qui liste les fichiers des répertoires, mais il ne liste pasles sous réperoires. Mon but c' est que le script au lancement liste à partir d' un dossier donné me fasse la liste des sous répertoires sans faire la liste des fichiers.
Malgré mes nombreuses recherche je n' ai pas trouvé de script approchant
Merci d' avance pour toute aide
Option Explicit
Const PathMDB = "F:\_DEV_vbs"
MsgBox TriRepertoire,,"Enumération " & PathMDB
'---lister les fichiers du répertoire ---
Function TriRepertoire()
Dim fso, fichier, fileItem
Dim i, imax, z, valeur, cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")
imax = 0
'début de l'énumération
For Each fichier In fso.GetFolder(PathMDB).Files
Set fileItem = fso.GetFile(fichier)
'---trier les fichiers par ordre décroissant de création ---
Do
Valeur = 0
For i = 1 To imax - 1
If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
For z = 1 To 2
Cible = Tableau(z, i)
Tableau(z, i) = Tableau(z, i + 1)
Tableau(z, i + 1) = Cible
Next
Valeur = 1
End If
Next
Loop While Valeur = 1
Set fileItem = nothing
Next
'Affichage du résultat classé
For i = 1 To imax
liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
'MsgBox liste,,i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& PathMDB
If i = imax Then MsgBox liste ,,"Liste du répertoire" &Space(3)& PathMDB
Next
TriRepertoire = liste
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 9 déc. 2008 à 14:23
Bonjour barada,
Option explicit
Const Path = "F:\SCRIPTS"
Dim objFso, SubFolder
Set objFso = CreateObject("Scripting.FileSystemObject")
ShowListFolder objFso.GetFolder(Path)
Set objFso = nothing
Sub ShowListFolder(Folder)
For Each Subfolder in Folder.SubFolders
msgbox SubFolder.Path & vbCrLf & SubFolder.Name
ShowListFolder SubFolder
Next
End Sub
Il te suffit de remplacer le msgbox par un tableau ou un dictionnaire.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 9 déc. 2008 à 21:29
Bonsoir,
Orientation pour un tableau.
Option explicit
Const Path = "F:\SCRIPTS"
Dim objFso, SubFolder, strResult, i
Dim aPos()
ReDim aPos(0)
Set objFso = CreateObject("Scripting.FileSystemObject")
ShowListFolder objFso.GetFolder(Path)
strResult = ""
For i=0 To UBound(aPos)
strResult = strResult & vbCrLf & aPos(i)
Next
MsgBox strResult
Set objFso = nothing
'------------------------
Sub ShowListFolder(Folder)
For Each Subfolder in Folder.SubFolders
ReDim Preserve aPos(UBound(aPos) + 1)
aPos(UBound(aPos)) = SubFolder.Path
ShowListFolder SubFolder
Next
End Sub