Parcourir récursivement un répertoire [Réglé]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Snooze
Messages : 7
Inscription : jeu. 22/janv./2004 16:13

Parcourir récursivement un répertoire [Réglé]

Message par Snooze »

Bonjour à tous et désolé si la question a déjà une réponse.

Je cherche à automatiser un scan d'un répertoire de driver pour sysprep comme le programme Sysprep driver scanner de Vernalex.

Je souhaite scanner le répertoire c:\sysprep\drivers\ qui contient plein de dossiers et sous dossiers avec des fichiers .inf :
ex:

c:\sysprep\drivers\P5GD1-VM\audio\
c:\sysprep\drivers\P5GD1-VM\lan
c:\sysprep\drivers\TUV4X\pci

Je souhaiterais pouvoir tester tous les répertoires, et quand je trouve un fichier .inf, enregister le path du répertoire.

J'arrive à tester un répertoire mais comment les tester tous ?

Merci d'avance pour toute info.
Dernière modification par Snooze le sam. 03/mars/2007 21:53, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Salut et bonjour à la Belgique,

Effectivement cela a été abordé plusieurs fois. Voici un exemple :

Code : Tout sélectionner

Procedure.s ParseDirectory(folder.s, id.l = 0)
  
  If Right(folder, 1) <> "\"
    folder + "\"
  EndIf
  
  If ExamineDirectory(id, folder, "*.*")
    
    While NextDirectoryEntry(id)
      
      If DirectoryEntryName(id) <> "." And DirectoryEntryName(id) <> ".."
        
        ;##########################################
        Debug folder + DirectoryEntryName(id)
        ;##########################################
        
        If DirectoryEntryType(id) = #PB_DirectoryEntry_Directory
          ParseDirectory(folder + DirectoryEntryName(id), id + 1)
        EndIf
        
      EndIf
      
    Wend
    
    FinishDirectory(id)
    
  EndIf
  
EndProcedure 

ParseDirectory(GetEnvironmentVariable("USERPROFILE"))
Snooze
Messages : 7
Inscription : jeu. 22/janv./2004 16:13

Message par Snooze »

Merci beaucoup Flype, c'est exactement ça.

Bonne soirée à tous.
Répondre