Page 1 sur 1
Aide pour un prog de recherche de dossier sur disque
Publié : ven. 05/mai/2006 23:25
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.
Publié : sam. 06/mai/2006 1:07
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
Publié : sam. 06/mai/2006 15:34
par pampers
Merci beaucoup, cela ne semble effectivement pas trés difficile. Merci encore..
Problème !
Publié : sam. 06/mai/2006 21:35
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 ???
Publié : dim. 07/mai/2006 12:02
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
Publié : dim. 07/mai/2006 20:15
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 ?
Publié : dim. 07/mai/2006 20:31
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
Publié : dim. 07/mai/2006 21:43
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 !!!