Tester si un REPERTOIRE existe.

Résolu
cs_ephy Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 3 novembre 2005 - 2 nov. 2005 à 21:59
cs_ephy Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 3 novembre 2005 - 3 nov. 2005 à 10:15
Bonjour à tous !
Je désire tester si un repertoire existe lorsque je clique sur un bouton, j'ai donc le code suivant :

Private Sub Command1_Click()
Dim reponse As Integer
If Dir("c:/nouveau_dossier/") <> "" Then
MsgBox ("Existe")
Else
MsgBox ("Existe pas")
reponse = MsgBox("Creer ?", vbInformation + vbYesNo, "Creer")
If reponse = vbYes Then
MkDir ("c:/nouveau_dossier")
Else: End
End If
End If
End Sub

Mon soucis est qu'après avoir créée mon repertoire, si je relance l'application il ne le detecte toujours pas et me demande d'en creer un alors qu'il est deja creer. Par contre si je teste si le repertoire Windows ou Program Files, il me confirme bien que le dossier existe. QQn aurait-il une solution ou un autre code svp ?!

Merci d'avance

5 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
2 nov. 2005 à 22:22
salut
[VB6]


Option Explicit
'
Private Declare Function PathFileExists Lib "shlwapi.dll" _
Alias "PathFileExistsA" _
ByVal pszPath As String) As Long
'
'
Private Sub Command1_Click()
If CBool(PathFileExists("c:/nouveau_dossier/")) Then
MsgBox "c'est ok ;)", 32
Else
Dim lRep As Long
lRep = MsgBox ("n'existe pas, créer ??", vbInformation + vbYesNo, "Creer")
If lRep = vbYes Then
MkDir ("c:/nouveau_dossier")
Else
Unload Me
End If
End If
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


ps : note bien que le END a été remplacé. il n'est que source d'ennuis pour tes futurs projets (VB bien sûr)
PCPT [AFCK]
3
cs_jeanmarc Messages postés 34 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 22 novembre 2005
2 nov. 2005 à 22:20
bonsoir,
exemple en vbs (valable en vba) pour tester la presence d'un path

Dim wRepDest1, fso
wRepDest1 = "c:\Archive-xxxx"

Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(wRepDest1) Then
Set f = fso.CreateFolder(wRepDest1)
msgBox "Création du dossier "&f&" effectuée.",vbInformation
Else
msgBox "Attention:"&vbCrLf&"Le répertoire "&wRepDest1&" existe déjà."&vbCrLf&"Les nouveaux fichiers ne sont donc pas archivés",vbCritical
End if
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
2 nov. 2005 à 22:25
manque une parenthèse ( devant le ByVal....
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
3 nov. 2005 à 10:12
ou bien



Dir("c:/nouveau_dossier/",vbDirectory)




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ephy Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 3 novembre 2005
3 nov. 2005 à 10:15
Merci pcpt pour ta réponse rapide est simple, qui m'illumine.


A bientot !
0
Rejoignez-nous