CreateDirectory

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

CreateDirectory

Message 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 :?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
RV
Messages : 209
Inscription : sam. 18/nov./2006 15:16

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 .... :)
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Message 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...
ImageImage
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Message par case »

oO

désolé :oops: la honte m'assaille :)
ImageImage
Répondre