OVH Cloud OVH Cloud

comment créer des répertoires imbriqués

4 réponses
Avatar
titebonnie
bonjour,
j'ai un fichier texte qui défini certains paramètre de mon programme. Mon
programme crée un fichier texte avec des données et c'est l'administrateur
spécifie le chemin vers lequel il veut que ce fichier texte soit crée.

Mon problème :
- ma variable 'monchemin' récupère l'adresse par ex : C:\bd\rep1
- je teste si le chemin existe :

testrep = Dir$(monchemin, vbDirectory)

- lorsqu'il n'existe pas, je crée le répertoire

MkDir monchemin

Cela fonctionne mais lorsque mon chemin est composé de multiples
sous-répertoires inconnu, ça bug (ex : C:\bd\rep1\rep2\rep3\rep4)

Comment faire pour créer ce chemin sans créer un par un les
sous-répertoire??

MERCI

4 réponses

Avatar
JP
un bête Shell "MD C:bdrep1rep2rep3rep4" ne
conviendrait-il pas ?
JP

-----Message d'origine-----
bonjour,
j'ai un fichier texte qui défini certains paramètre de


mon programme. Mon
programme crée un fichier texte avec des données et


c'est l'administrateur
spécifie le chemin vers lequel il veut que ce fichier


texte soit crée.

Mon problème :
- ma variable 'monchemin' récupère l'adresse par ex :


C:bdrep1
- je teste si le chemin existe :

testrep = Dir$(monchemin, vbDirectory)

- lorsqu'il n'existe pas, je crée le répertoire

MkDir monchemin

Cela fonctionne mais lorsque mon chemin est composé de


multiples
sous-répertoires inconnu, ça bug (ex : C:bdrep1rep2


rep3rep4)

Comment faire pour créer ce chemin sans créer un par un


les
sous-répertoire??

MERCI


.



Avatar
Zoury
Salut Bonnie! :O)

si ton appli est prévu pour Windows 2000 ou XP tu peux utiliser l'api
MakeSureDirectoryPathExists.

'***
Option Explicit

Private Declare Function MakeSureDirectoryPathExists _
Lib "imagehlp.dll" _
( _
ByVal lpPath As String _
) As Long

Private Sub Main()
Call MakeSureDirectoryPathExists("c:thisisatestdirectory")
End Sub
'***

sinon tu devras te coder une fonction qui ferait le meme travail.. dit le
nous si tu as besoin d'aide ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"titebonnie" wrote in message
news:ej539N%
bonjour,
j'ai un fichier texte qui défini certains paramètre de mon programme. Mon
programme crée un fichier texte avec des données et c'est l'administrateur
spécifie le chemin vers lequel il veut que ce fichier texte soit crée.

Mon problème :
- ma variable 'monchemin' récupère l'adresse par ex : C:bdrep1
- je teste si le chemin existe :

testrep = Dir$(monchemin, vbDirectory)

- lorsqu'il n'existe pas, je crée le répertoire

MkDir monchemin

Cela fonctionne mais lorsque mon chemin est composé de multiples
sous-répertoires inconnu, ça bug (ex : C:bdrep1rep2rep3rep4)

Comment faire pour créer ce chemin sans créer un par un les
sous-répertoire??

MERCI




Avatar
titebonnie
Merci pour vos réponses. J'ai dû procédé à une procédure, et c bon ça
fonctionne, je poste la solution afin d'en faire profiter d'autres personnes
se posant la même question.

->procédure qui appel un paramètre qui est un tableau nommé "découpage" qui
a été construit à partir d'une fonction découpant le chemin


decoupage = Split(C:tototiticoco, "")


Sub CreerChemin(decoupage() As String)
Dim repertoire as string
Dim i as integer
Dim testrep as string

For i = 0 To UBound(decoupage) - 1
repertoire = repertoire & decoupage(i) & ""
testrep = Dir$(repertoire, vbDirectory)
If testrep = "" Then
MkDir (repertoire)
End If
Next i

End Sub


"Zoury" a écrit dans le message de
news:%23vcVY0$
Salut Bonnie! :O)

si ton appli est prévu pour Windows 2000 ou XP tu peux utiliser l'api
MakeSureDirectoryPathExists.

'***
Option Explicit

Private Declare Function MakeSureDirectoryPathExists _
Lib "imagehlp.dll" _
( _
ByVal lpPath As String _
) As Long

Private Sub Main()
Call MakeSureDirectoryPathExists("c:thisisatestdirectory")
End Sub
'***

sinon tu devras te coder une fonction qui ferait le meme travail.. dit le
nous si tu as besoin d'aide ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"titebonnie" wrote in message
news:ej539N%
> bonjour,
> j'ai un fichier texte qui défini certains paramètre de mon programme.


Mon
> programme crée un fichier texte avec des données et c'est


l'administrateur
> spécifie le chemin vers lequel il veut que ce fichier texte soit crée.
>
> Mon problème :
> - ma variable 'monchemin' récupère l'adresse par ex : C:bdrep1
> - je teste si le chemin existe :
>
> testrep = Dir$(monchemin, vbDirectory)
>
> - lorsqu'il n'existe pas, je crée le répertoire
>
> MkDir monchemin
>
> Cela fonctionne mais lorsque mon chemin est composé de multiples
> sous-répertoires inconnu, ça bug (ex : C:bdrep1rep2rep3rep4)
>
> Comment faire pour créer ce chemin sans créer un par un les
> sous-répertoire??
>
> MERCI
>
>




Avatar
Zoury
Salut Bonnie! :O)

Ta fonction est correcte. Toutefois..

testrep = Dir$(repertoire, vbDirectory)
If testrep = "" Then



Je te conseilles de lire ceci concernant le test de l'existence d'un
répertoire ou d'un fichier à l'aide de Dir$().
http://groups.google.com/groups?threadm=ekzDwIt2DHA.2060%40TK2MSFTNGP10.phx.gbl

voici donc les trois fonctions que je recommande généralement pour testé
l'existence d'un fichier, d'un répertoire ou d'un lecteur.
http://groups.google.com/groups?threadm=uNTBAk6oDHA.976%40tk2msftngp13.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/