Rechercher : dans
Par :

Affichage de l'arborescence d'un répertoire

Dernière réponse le 14 mai 2008 à 11:13:14 Franko, le 1 déc 2002 à 03:42:28 
 Signaler ce message aux modérateurs

J'essaie de coder une recherche qui me permettrait d'afficher tous les sous-répertoires d'un répertoire.

voila mon code

Sub initiate(thePath As String)
Dim MyName As String
' Display the names in C:\ that represent directories.
MyName = Dir(thePath & "\", vbDirectory)
While MyName <> "" ' Start the loop.
If MyName <> "." And MyName <> ".." Then
If (GetAttr(thePath & "\" & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Display entry only if it
Call initiate(thePath & "\" & MyName, "")
Else
Debug.Print MyName
End If

End If
MyName = Dir ' Get next entry.
Wend

End Sub

Une fonction récursive.

Tout va bien, elle parcoure le contenu du répertoire, et dès qu'un sous-répertoire est détecté, elle se rappelle avec ce sous-répertoire. Le problème, au retour des appels récursifs, la fonction Dir me donne des mots de tête. Elle ne considère pas la logique de la fonction.

Idées???

Merci milles fois

Meilleures réponses pour « Affichage de l'arborescence d'un répertoire » dans :
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Linux - L'arborescence des fichiers VoirLa hiérarchie des fichiers sous Linux Pour assurer la compatibilité et la portabilité, les systèmes Linux respectent l'unique norme FHS (File Hierarchy Standard). La hiérarchie de base est la suivante : /la racine, elle contient les...
Apache - Les fichiers .htaccess VoirLes fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...

1

Dark, le 2 jan 2008 à 11:59:20

Cest un script pour effacer les fichiers/dossiers datant de + de 15 jours, sa poura peut etre t'aider

[code]
'on error resume next
'declaration des variables
Dim folder
dim Subfolder
dim path
Dim FSO
Dim B
'instantation du file system object (FSO)
Set FSO = CreateObject("Scripting.FileSystemObject")

'initialisation de la variable contenant le chemin du repertoire racine
path = "D:\test_transit\Transit"

'appel de la fonction recurcive avec comme argument le chemin du repertoire
'racine
recurcive path

function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
'des dossiers

set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
'racine
set Subfolder = folder.SubFolders 'definition de la varibale pour les S/dossiers

for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
Set fic = A.Files 'definition de la variables toucher les fichier des dossier

fichier fic 'appel de la fontion fixhier
recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
'dossier path
next
end function 'fin de la fonction


function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A

For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
'msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
FSO.DeleteFile f, force = yes
end if 'fin du SI
next

end function 'fin de la fonction

'function dossier(path) 'fonction pour supprimer les dossier vides (taille = 0 )
set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine
If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
'msgbox B & B.size 'effacer le dossier
FSO.DeleteFolder B, force = yes
End If 'fin du SI

Next

'end function 'fin de la fonction


[/code]

Répondre à Dark

2

 noyon, le 14 mai 2008 à 11:13:14
  • +1

Tu peu le faire en graphique stp

Répondre à noyon
Collection CommentÇaMarche.net