CREER UN DOSSIER (AVEC SES DOSSIERS PARENTS)

Sharkiller Messages postés 71 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009 - 31 juil. 2007 à 14:14
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 mai 2008 à 14:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43618-creer-un-dossier-avec-ses-dossiers-parents

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 mai 2008 à 14:34
indispensable, de publier ça en .NET ?

My.Computer.FileSystem.CreateDirectory("C:\Cette\Simple\Ligne\créé\toute\mon\arborescence")
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 mai 2008 à 14:34
Dagry -> juste pour remplacer 'As Long' par 'As Integer'? :s
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
29 mai 2008 à 14:24
pas mal du tout. mais pour ceux que ça interesse, je vais publier le code vb.net :)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 août 2007 à 06:21
tu aurais pu la renommer (tout comme une certaine fonction MsgBox, dans un certain projet).
si tu veux appeler la fonction d'origine, il suffit de mettre son nom complet :

FileSystem.MkDir
ou mieux :
VBA.FileSystem.MkDir

(visible dans l'explorateur d'objets: la touche F2)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 août 2007 à 20:46
Renfield>>Pas de pb ce code m'a pris moins de 5 min.

Sinon j'aime bien ta façon de déclarer l'API. Cela évite de changer tout un code déjà existant.
Moi je n'ai pas pu le faire car ma fonction MakeDirectory utilise la fonction MkDir de VB.
En tout cas je vais utiliser cette API pour mon prog en cours ^^

Cette source devient donc obsolete.

Merci à vous
++
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
1 août 2007 à 12:25
Je ne connaissais pas MakeSureDirectoryPathExists. J'avais écris ma propre fonction... que je viens de remplacer. Merci pour l'info.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 août 2007 à 08:18
Salut bouv,

désolé, j'aurais du t'en parler :
http://www.vbfrance.com/codes/MKDIR-RECURSIF_36211.aspx


du coup, maintenant, quand j'ai besoin, je déclare l'API suivante :
Public Declare Function MkDir Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long

Elle remplace ainsi le MkDir de VB
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 août 2007 à 05:03
si çà change si il n'y a pas le dernier ""

Private Sub Form_Load()
Const DEST As String = "C:\dossiertest"

' création
MkDir DEST

If LenB(Dir(DEST, vbDirectory)) Then
MsgBox "dossier trouvé"
Else
MsgBox "dossier non-trouvé"
End If

' on le rend caché + systeme
SetAttr DEST, vbHidden Or vbSystem

If LenB(Dir(DEST, vbDirectory)) Then
MsgBox "dossier trouvé"
Else
MsgBox "dossier non-trouvé"
End If

Unload Me
End Sub


(ici Bouv bien le test. simple précision, tout comme pour l'API)
Sharkiller Messages postés 71 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009
1 août 2007 à 01:36
Salut PCPT,
En fait je ne vois pas ce que ça change que ce soit un dossier caché ou système, du moment qu'il existe?

Cordialement^^
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
31 juil. 2007 à 17:49
PCPT>>Parce que je connaissais pas ;-)
Va falloir que je regarde ça de plus près, j'ai toujours une préférence pour les API.

Par ailleurs, je m'apperçois qu'une partie de la fonction DossierExiste est inutile (tout le début où on affecte une valeur à Tmp). Je la met à jour de suite.

Sinon merci pour l'info.
++
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
31 juil. 2007 à 17:42
ps : Dir("C:\mondossier", vbDirectory) renvoie "."
mais dir est à éviter (system? caché? etc...). voir sur codyx.org
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
31 juil. 2007 à 17:37
salut Bouv,

à tester pour vista (mais y'a pas de raison), l'API MakeSureDirectoryPathExists fonctionne pour tous les Win. pourquoi ne pas t'en servir? elle teste déjà l'existance ou non d'un dossier.

++
PCPT [AFCK]
Sharkiller Messages postés 71 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009
31 juil. 2007 à 14:26
Ah ah.. OK, désolé d'avoir dis n'importe quoi^^. Faut dire que j'ai pas eu l'occasion de tester avec des dossiers vides...
Autant pour moi^^. C'est une bonne idée tout de même ;).

Bonne continuation.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
31 juil. 2007 à 14:20
Salut,
Non car si le dossier est vide : Dir(Dossier) te renvoi un vbNullString alors que le dossier existe.
Sharkiller Messages postés 71 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009
31 juil. 2007 à 14:14
Salut,
T'as plus simple pour savoir si un dossier existe ou non, avec Dir. Si Dir(Répertoire)<>"" c'est que le répertoire existe.
Enfin je dis ça comme ça, je peux me tromper^^.

Bonne journée!
Rejoignez-nous