Page 1 sur 1

CreateDirectory

Publié : ven. 16/nov./2007 2:09
par Backup
pouvez vous faire

Code : Tout sélectionner

CreateDirectory("i:\mimi\toto")   
dans le but de creer un dossier dans un dossier alors qu'aucun des 2 n'existes ?? 8O

il me semble bien avoir pu le faire, mais la ça veux plus !! 8O :?

Publié : ven. 16/nov./2007 8:27
par Kwai chang caine
Bonjour DOBRO

Bah non, ça marche pas non plus chez moi, mais on m'a toujours dit qu'on ne pouvait pas avec PB creer de dossiers recurssifs.

C'est pour ça que le soldat (qui me manque) avait créé ce code, il me semble :roll: :

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu 
; 
; Explication du programme : 
; Ce code permet de créer un dossier dont le ou les répertoires parents n'existent pas. 
; Exemple : 
; je souhaite créé le dossier "C:\Program files\truc\bidule" 
; Seul le dossier "C:\Program files\" existe 
; Si j'utilise CreateDirectory("C:\Program files\truc\bidule"), cela ne va pas marcher car le dossier "C:\Program files\truc\" n'existe pas 
; Si j'utilise CreateDirectoryEx("C:\Program files\truc\bidule"), tous les les dossiers seront créés : 
; C:\Program files\ 
; C:\Program files\truc\ 
; C:\Program files\truc\bidule 


Procedure.l CreateDirectoryEx(FolderPath.s) 
 
 ; Retourne 1 si la création du dossier à réussi, 0 sinon 
 
 Protected Folder.s, Txt.s, Cpt.l 
 
 If FileSize(Folder) = -1 
 
  Folder.s = StringField(FolderPath, 1, "\") + "\" 
  Cpt.l = 1 
 
  Repeat 
   Cpt + 1 
   Txt.s = StringField(FolderPath, Cpt, "\") 
   Folder = Folder + Txt + "\" 
   CreateDirectory(Folder) 
  Until Txt = "" 
 
 EndIf 
 
 If FileSize(FolderPath) = -2 
  ProcedureReturn 1 
 Else 
  ProcedureReturn 0 
 EndIf 
 
EndProcedure 


;- Test 
If CreateDirectoryEx("c:\truc\bidule") 
 MessageRequester("", "Le dossier 'c:\truc\bidule' a été créé", 0) 
Else 
 MessageRequester("Erreur", "impossible de créer le dossier 'c:\truc\bidule'", 0) 
EndIf

Publié : ven. 16/nov./2007 10:11
par lionel_om

Code : Tout sélectionner

ProcedureDLL MakeSureDirectoryPathExists(Directory.s)
  
  ; Return 1 If success / 0 If fail 
  
  retour=MakeSureDirectoryPathExists_(Directory)
  ProcedureReturn retour
EndProcedure
Lio :wink:

Publié : ven. 16/nov./2007 11:10
par Backup
Merci beaucoup les gars !! :)

j'avais commencé une alternative, mais il n'empeche que je trouve ça nul !! :?

Le purebasic a encore pas mal de chose a integrer , il me semble ....

Merci encore :D

Publié : jeu. 29/nov./2007 17:47
par RV
Salut Dobro,

Je suis déjà tombé sur ce problème et j'ai trouvé cette soluce

Code : Tout sélectionner

CreateDirectory("c:\mimi")
CreateDirectory("c:\mimi\toto")
En fait, il faut créer un à un tes répertoires.

J'espère t'avoir aidé même si je pense avoir un peu de retard! :wink:

Publié : jeu. 29/nov./2007 17:50
par Backup
RV a écrit :Salut Dobro,

Je suis déjà tombé sur ce problème et j'ai trouvé cette soluce

Code : Tout sélectionner

CreateDirectory("c:\mimi")
CreateDirectory("c:\mimi\toto")
En fait, il faut créer un à un tes répertoires.

J'espère t'avoir aidé même si je pense avoir un peu de retard! :wink:
Merci .. je l'avais compris, mais ça reste vachement nul :)

cela aurai ete sympath de pouvoir tout creer d'un coup .... :)

Publié : jeu. 29/nov./2007 18:58
par case
même window n'a pas d'api qui le fasse :)

le dos par contre a la commande MD qui le fait , ceci dit c'est possible que la commande MD utilise la meme facon de proceder que le code du soldat inconnu posté par Kwai chang caine...

Publié : jeu. 29/nov./2007 19:07
par lionel_om
case a écrit :même window n'a pas d'api qui le fasse :)
Et le code que j'ai posté, c'est quoi alors ?

Code : Tout sélectionner

MakeSureDirectoryPathExists_()
Lio :roll:

Publié : jeu. 29/nov./2007 20:45
par case
oO

désolé :oops: la honte m'assaille :)