Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

isnull(dir) ou dir = "" ?

3 réponses
Avatar
JPG
Bonjour,

J'ai un souci pour détecter la présence d'un fichier ou d'un dossier.
J'utilise soit
if isnull(dir(myfile)) then 'ou not isnull
soit
if dir(myfile)="" then 'ou <>""

et ça marche une fois sur 2 dans les 2 cas, mais jamais au bon moment !
Si le répertoire Bidule, n'existe pas je crée le répertoire bidule. Il
trouve que bidule n'existe pas (ce qui est faux) et au moment de le créer, il
me dit qu'il existe déja. Je mettrais bien un "On error resume next", mais
j'ai peur que le répertoire ne soit jamais créé.

Existerait-il une syntaxe qui marche à tous les coups ?

Merci beaucoup pour votre aide.

3 réponses

Avatar
Eric
Bonjour,

Pour tester l'absence d'un répertoire:
If dir("Nomrep", vbDirectory)="" then

Pour un fichier:
If dir("CheminCompletFichier.Ext")="" then

Bonjour,

J'ai un souci pour détecter la présence d'un fichier ou d'un dossier.
J'utilise soit
if isnull(dir(myfile)) then 'ou not isnull
soit
if dir(myfile)="" then 'ou <>""

et ça marche une fois sur 2 dans les 2 cas, mais jamais au bon moment !
Si le répertoire Bidule, n'existe pas je crée le répertoire bidule. Il
trouve que bidule n'existe pas (ce qui est faux) et au moment de le créer, il
me dit qu'il existe déja. Je mettrais bien un "On error resume next", mais
j'ai peur que le répertoire ne soit jamais créé.

Existerait-il une syntaxe qui marche à tous les coups ?

Merci beaucoup pour votre aide.





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
JPG
Merci Eric !


Bonjour,

Pour tester l'absence d'un répertoire:
If dir("Nomrep", vbDirectory)="" then

Pour un fichier:
If dir("CheminCompletFichier.Ext")="" then

Bonjour,

J'ai un souci pour détecter la présence d'un fichier ou d'un dossier.
J'utilise soit
if isnull(dir(myfile)) then 'ou not isnull
soit
if dir(myfile)="" then 'ou <>""

et ça marche une fois sur 2 dans les 2 cas, mais jamais au bon moment !
Si le répertoire Bidule, n'existe pas je crée le répertoire bidule. Il
trouve que bidule n'existe pas (ce qui est faux) et au moment de le créer, il
me dit qu'il existe déja. Je mettrais bien un "On error resume next", mais
j'ai peur que le répertoire ne soit jamais créé.

Existerait-il une syntaxe qui marche à tous les coups ?

Merci beaucoup pour votre aide.





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Gilles MOUGNOZ
Bonjour, JPG
En parcourant l'aide sur la fonction Dir() et en faisant quelques tests, il
apparaît qu'en passant le chemin d'un dossier en paramètre, on obtient le
nom du premier fichier qu'il contient, à condition d'ajouter un anti-slash
() à la fin du chemin du dossier. Si ce dossier est vide, la fonction
renvoie une chaîne vide, comme dans le cas où le dossier n'existe pas. En
ajoutant le paramètre vbDirectory, elle renvoie bien le nom du dossier s'il
existe ou une chaîne vide sinon. Idem pour les fichiers. Mon conseil est
donc d'utiliser systématiquement Dir() avec ce paramètre:
Dir(TonChemin, vbDirectory)

Personnellement, j'utilise le fso (FileSystemObject), pas Dir(). Pour savoir
si un dossier, un fichier ou même un lecteur existe, il y a des fonctions
spécifiques. Exemple pour l'existence d'un fichier:
Public Function FichierValide(avChemin As String) As Boolean
Set voFileSystem = CreateObject("Scripting.FileSystemObject")
FichierValide = voFileSystem.FileExists(avChemin)
Set voFileSystem = Nothing
End Function
Plus d'infos ici:
http://www.laltruiste.com/coursscriptingruntime/filesystemobject.html
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonjour,
J'ai un souci pour détecter la présence d'un fichier ou d'un dossier.
J'utilise soit
if isnull(dir(myfile)) then 'ou not isnull
soit
if dir(myfile)="" then 'ou <>""
et ça marche une fois sur 2 dans les 2 cas, mais jamais au bon moment !
Si le répertoire Bidule, n'existe pas je crée le répertoire bidule. Il
trouve que bidule n'existe pas (ce qui est faux) et au moment de le créer,
il
me dit qu'il existe déja. Je mettrais bien un "On error resume next", mais
j'ai peur que le répertoire ne soit jamais créé.
Existerait-il une syntaxe qui marche à tous les coups ?
Merci beaucoup pour votre aide.