Aide pour un prog de recherche de dossier sur disque
Aide pour un prog de recherche de dossier sur disque
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.
D'avance merci de votre aide.
Pampers
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().

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
Problème !
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
-
- Messages : 264
- Inscription : ven. 28/oct./2005 8:20
- Localisation : Mayotte ( 976 ), Océan Indien, France
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)