Aide pour un prog de recherche de dossier sur disque

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pampers
Messages : 10
Inscription : ven. 05/mai/2006 23:20

Aide pour un prog de recherche de dossier sur disque

Message par pampers »

Bonjour a tous, je débute en PB ! je progresse grace a l'exemple. je cherche un code qui me permet de chercher un dossier sur le disque et si il existe de pouvoir le supprimer ainsi que son contenu... (ce dossier peut être présent à plusieurs endroits du DD.
D'avance merci de votre aide.
Pampers
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bienvenu pampers :)

pour ta demande il faut faire une procedure récursive, c'est assez facile en purebasic comme le montre le code ci dessous. Ensuite pour effacer ton dossier tu as DeleteDirectory().

Code : Tout sélectionner

Procedure FindDirectory(folder.s, filename.s, liste.s())
  
  If Right(folder,1)<>"." And Right(folder,2)<>".."
    
    dir = ExamineDirectory(#PB_Any, folder, "*.*")
    
    If dir
      While NextDirectoryEntry(dir)
        Select DirectoryEntryType(dir)
          Case #PB_DirectoryEntry_Directory
            If LCase(DirectoryEntryName(dir)) = filename
              If AddElement(liste())
                liste() = folder+"\"+DirectoryEntryName(dir)
              EndIf
            Else
              FindDirectory(folder+"\"+DirectoryEntryName(dir), filename, liste())
            EndIf
        EndSelect
      Wend
    EndIf
    
  EndIf
  
EndProcedure

NewList resultat.s()

Debug FindDirectory("c:\documents and settings", "temp", resultat())

ForEach resultat()
  Debug resultat()
  ;Debug DeleteDirectory(resultat(), "*.*", #PB_FileSystem_Recursive)
Next
Image
pampers
Messages : 10
Inscription : ven. 05/mai/2006 23:20

Message par pampers »

Merci beaucoup, cela ne semble effectivement pas trés difficile. Merci encore..
Pampers
pampers
Messages : 10
Inscription : ven. 05/mai/2006 23:20

Problème !

Message par pampers »

la synthaxe me paraissait claire, mais quand l'essai de l'executer, PureBasic se bloque. il renvoi une erreur dans la synthaxe de la procedure ???
Pampers
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

si tu utilise la démo ou la derniere version stable, tu as une version 3.94
là c'est un code prévu pour la version 4 (actuellement en beta)

Dri
pampers
Messages : 10
Inscription : ven. 05/mai/2006 23:20

Message par pampers »

Dr. Dri a écrit :si tu utilise la démo ou la derniere version stable, tu as une version 3.94
là c'est un code prévu pour la version 4 (actuellement en beta)

Dri
j'ai la 3.94 il faut donc que je modifie le code ?si oui comment ?
Pampers
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Voilà ce que ça donne (j'espère que il n'y a pas d'erreur)

Code : Tout sélectionner

NewList resultat.s()
Procedure FindDirectory(folder.s, filename.s) 
  
  If Right(folder,1)<>"." And Right(folder,2)<>".." 
    
    dir = ExamineDirectory(#PB_Any, folder, "*.*") 
    
    If dir 
      Repeat
      entry =  NextDirectoryEntry() 
        Select entry
          Case 2
            If LCase(DirectoryEntryName()) = filename 
              If AddElement(resultat()) 
                resultat() = folder+"\"+DirectoryEntryName() 
              EndIf 
            Else 
              FindDirectory(folder+"\"+DirectoryEntryName(), filename)
              UseDirectory(dir)
            EndIf 
        EndSelect 
Until entry = 0
    EndIf 
    
  EndIf 
  
EndProcedure  
FindDirectory("c:\documents and settings", "temp") 

ForEach resultat() 
  Debug resultat() 
  ;Debug DeleteDirectory(resultat(), "*.*", #PB_FileSystem_Recursive) 
Next  
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
pampers
Messages : 10
Inscription : ven. 05/mai/2006 23:20

Message par pampers »

Merci à tous, je viens de télécharger la Beta 4. Votre réactivité donne envie de continuer. je pense que je vais pas me coucher de bonne heure !!!
Pampers
Répondre