Rechercher un dossier

[Résolu]
Signaler
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Bonjour tout le monde !

Je souhaiterais faire la recherche sur tous les disques durs présents sur un pc d'un dossier (par exemple : Mes Images) et ensuite je voudrais pouvoir copier tout son contenu (sous dossiers compris) dans le même dossier que celui de l'application ...
Je n'ai trouvé aucune source permettant de faire la recherche d'un répertoire....

Merci

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
Va voir ma source nommée Copie d'un dossier avec défillement, ca devrait t'aider au moins à faire la copie récursive des sous-dossier, voir même la recherche du dossier.
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Tiens, puisque c les fêtes, je te livre un truc très court mais qui fonctionne :

Dim fso As Object

Private Sub Form_Load()
Dim d As Object

' Crée un FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")

' Parcourre tous les DD du PC
For Each d In fso.Drives
If d.DriveType = 2 Then Recherche (d.Path & "")
Next

Set fso = Nothing

End Sub

Sub Recherche(Chemin As String)
Dim f, sf, fl

  ' On choppe le dossier de départ
  Set f = fso.getfolder(Chemin)
  
  ' On scanne les sous dossiers
  For Each sf In f.SubFolders
    ' S'il y en a un qui correspond à la recherche
    If LCase(sf.Name) = "mes images" Then
      ' On copie tous les fichiers
      For Each fl In sf.Files
      fso.CopyFile Chemin & sf.Name & "" & fl.Name, App.Path & "" & fl.Name, True
      Next
    End If
    ' On continue récursivement
    Recherche_Dossier Chemin & sf.Name & ""
  Next

Set f = Nothing
Set sf = Nothing
Set fl = Nothing

Unload Me

End Sub


Cordialement, CanisLupus
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut ZogStriP
Parce que tu a mal cherché !
Regarde cette source
Il suffisait de chercher 'dossiers windows' pour tomber dessus.
Avec ça, tu pourras trouver où se trouve 'Mes Documents', tu n'auras plus qu'à y ajouter 'Mes Images'

Ensuite, pour lister les fichiers et sous répertoires, il y a de multiples sources qui font cette recherche récursive, cherche un peu (regarde l'aide de la fonction DIR, tu sauras tout)

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
C'est vrai ça,
Sur le site, tu as le choix, DIR ou FileSystemObject. Et toutes les fonctions récursives possibles.
Et puis, si tu veux lister tous les disques durs locaux de ton pc :

Dim d As Object
Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

For Each d In fso.Drives
If d.DriveType = 2 Then MsgBox d.Path & ""
Next

Cordialement, CanisLupus
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
1
Merci infiniment à vous tous !

Vive CodeS SourceS ;)

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
1
J'ai un : Permission denied à la ligne : For Each sf In f.SubFolders

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Mea culpa, dans la recopie de mon code, j'ai oublié un truc.

A la place de :
' On continue récursivement
Recherche_Dossier Chemin & sf.Name & ""
Next
il faut coder :
' On continue récursivement
Recherche Chemin & sf.Name & ""
Next

Sinon, pour ton erreur, ça ne m'est pas arrivé mais ça peut venir d'un dossier XP system caché. Dans ce cas, faut gérer ça avec une on error resume next.

Cordialement, CanisLupus