Teste un repertoire (Urgent et surement simple ^^)

Rastacana Messages postés 55 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 19 juin 2002 - 17 juin 2002 à 16:46
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 25 févr. 2007 à 15:07
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

borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
18 juin 2002 à 10:04
"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
Rastacana Messages postés 55 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 19 juin 2002
18 juin 2002 à 11:43
oui c est des dossier ke je veut verife mais je connais pas vb comment puis je faire^_^
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
18 juin 2002 à 14:30
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
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
18 juin 2002 à 21:21
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

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

Posez votre question
Rastacana Messages postés 55 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 19 juin 2002
19 juin 2002 à 08:46
Merci je vasi regardé se ke j arrive a faire de tt sa^_^
0
yiott Messages postés 4 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 18 octobre 2013
1 juin 2005 à 23:04
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
mstaub Messages postés 51 Date d'inscription dimanche 24 août 2003 Statut Membre Dernière intervention 29 octobre 2010 2
30 juil. 2005 à 18:58
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
yiott Messages postés 4 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 18 octobre 2013
31 juil. 2005 à 09:43
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
sylvain2b Messages postés 7 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 25 février 2007
25 févr. 2007 à 14:42
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
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 févr. 2007 à 15:00
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
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 févr. 2007 à 15:07
Excuses et correction:

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