Teste un repertoire (Urgent et surement simple ^^)

Signaler
Messages postés
55
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
19 juin 2002
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Voila en faite je desire tester si c:\a existe et s il n existe pas le creer cependant je n arrive pas a faire un fonction qui teste l existence...
je fait cela moi
if not Fichierexiste("c:\a")then
mkdir("c:\a)
end if

ma fonction fichierexiste me renvoie tj faux comment en creer une qui sacche bien si le rep existe ou pas (Si sa se trouve il ya mile fois plus simple)
Merci^_^

11 réponses

Messages postés
98
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
7 mars 2006
5
"C:\a" c'est un repertoire ou un fichier?
Sinon tu peux chercher du coter des FSO (File System Object), quelqu'un a deja du deposer une source.
Si tu ne trouves pas je peux te dire comment faire (fo que je cherche dans mes sources), c'est pas complique.

Borntoclimb
0
Messages postés
55
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
19 juin 2002

oui c est des dossier ke je veut verife mais je connais pas vb comment puis je faire^_^
0
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Bonjour,

Ci-dessus, je teste si 1 répertoire existe:
1) oui, je copie x fichiers
2) non, je crée le reprtoire + copie de fichiers

Dim wRepSrce1
Dim wRepDest1
wRepSrce1 = "c:\CSSI\Ales"
wRepDest1 = "c:\Archive-Ales"
wSrce1 = "c:\CSSI\Ales\*.txt"
If Not fso.FolderExists(wRepDest1) Then
Set f = fso.CreateFolder(wRepDest1)
msgBox "Création du dossier "&f&" effectuée.",vbInformation
fso.MoveFile wSrce1, wRepDest1
Else
msgBox "Attention:"&vbCrLf&"Le répertoire "&wRepDest1&" existe déjà.",vbCritical
End if

Ecriture en VBScript.
0
Messages postés
98
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
7 mars 2006
5
Je repete probablement le message de JMO:

'Verifie l'existence d'un repertoire
Public Function ExistPath(path) As Boolean
Set fso = CreateObject("Scripting.FileSystemObject")
ExistPath = fso.FolderExists(path)
End Function

'creation d'un repertoire
Public Sub Createdir(EntireDir As String, alert As Boolean)
If ExistPath(EntireDir) = False Then
MkDir (EntireDir)
Else
If alert = True Then
MsgBox "le repertoire " + EntireDir + " existe deja."
End If
End If
End Sub

borntoclimb
0
Messages postés
55
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
19 juin 2002

Merci je vasi regardé se ke j arrive a faire de tt sa^_^
0
Messages postés
4
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
18 octobre 2013

mais arretez avec vos composant ActivX...

VB integre des fonction basique (les meme que Windows a peu de choses près!!!)

voila le code pour tester si un fichier existe et si non le creer:

If (Dir(chemin/dossier_a_tester)) <> "dossier_a_tester" Then'la fonction dir renvoi le nom du dossier si il existe et rien si non
MkDir (chemin/dossier_a_tester) 'Mkdir creer un dossier a l'emplacement specifié!
End If

c'est quand meme beaucoup plus propre!!! et portable!!!

@++

Yiott
0
Messages postés
51
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
29 octobre 2010
2
Salut
pourquoi ne pas tout simplement IGNORER l'erreur lors de la création du répertoire !

on error resume next
mkdir "c:\a"

javascript:AjoutSmiley('');
0
Messages postés
4
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
18 octobre 2013

Ca...c'est de la programmation a la Microsoft!!


On error resume next... Je suis d'accord parfois c indispensable mais faut quand meme eviter de le placer!! ca revien a dire, si ta une erreure, tu passe a l'action d'après et on ignore l'erreure...

si le dossier existe pas il é creer et si il y a une erreure après 3 ou 4 ligne plus bas on "resume next" et hop ion risque joyeusement une petite boucle infinie ou un erreure dites "bleue"...

Non pour creer un dossier jpense qu'il vo mieu evier les on error resume next tout comme les on error goto error c du bug assuré!
0
Messages postés
7
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
25 février 2007

Bonjour

Cette solution marche et me semble simple et claire


'Verifie l'existence d'un dosiier puis d'un fichier et le créent au besoin








Dim
dossier

As



New
System.IO.DirectoryInfo (

"mon dossier"
)


If
dossier.Exists =

False



Then

dossier.Create()







End



If






Dim
fichier

As



New
System.IO.FileInfo(

"nom_fichier"
)


If
fichier.Exists =

False



Then

fichier.Create()







End



If
0
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Ouais....
Il est pourtant tellement simple d'utiliser une simple gestion d'erreur et des messages d'erreurs éventuellement reçus !

puis-je timidement rappeler que VB ne fait jamais rien d'autre que d'utiliser les fonctions de l'API de Windows et que, pour ce sujet, ce sera la fonction  CreateDirectory de la librairie kernel32, laquelle retournera tout bêtement une valeur 0 d'insuccès ou <> 0 en cas de succès, et qu'enfin,  si l'on souhaire avoir des précisions (si la valeur retournée est différente de 0), la fonction GerLastError les retournera à la demande ?

Il est bien évidemment bien inutile d'appeler CreateDirectory (ce que fait déjà VB) et GetLastError (ce que sait traiter VB en gestioçn d'erreurs)... encore que... l'on y gagnerait en vitesse d'exécution.

Je trouve que l'on veut trop souvent réinventer la roue....
0
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Excuses et correction:

GerlastError est à utiliser en cas de 0 retourné par CreateDirectory, bien sur... (gros doigts)
0