VÉRIFIER L'EXISTENCE D'UN FICHIER

Signaler
-
Messages postés
6
Date d'inscription
mercredi 17 février 2010
Statut
Membre
Dernière intervention
15 juillet 2012
-
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/315-verifier-l-existence-d-un-fichier

Messages postés
6
Date d'inscription
mercredi 17 février 2010
Statut
Membre
Dernière intervention
15 juillet 2012

Salut à tous et merci, mais j'ai retrouvé un vieux code qui marche bien et plus "rapide", je code en VB5 sur un portable qui a plus de 15 ans et sous W95 (donc il faut optimiser le code, surtout quand on fait une moulinette) :

Function FileExists(FileName As String) As Boolean
On Error GoTo ErrorHandler FileExists (GetAttr(FileName) And vbDirectory) 0
GoTo No_Error
ErrorHandler:
FileExists = False
No_Error:
End Function

Ca permet également de ne pas renvoyer true sur un répertoire...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
plus simple que quoi ?

ne mélange pas tout, ici, c'est une source en VB6, tu propose un code 'plus simple' mais en .Net...
Messages postés
22
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
10 mai 2011

+ simple...

If System.IO.File.Exists(MonFichier) Then ...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
FSO à proscrire pour ce genre de mini traitements.... acceptable uniquement en VBS

Public Function IsFileExisting(ByRef Path As String) As Boolean
IsFileExisting = (GetFileAttributes(Path) <> INVALID_FILE_ATTRIBUTES)
End Function
Messages postés
8
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
14 octobre 2005

Très simple .. un Dir$ avec une gestion d'erreurs (on error). Ca c'est l'alternative... à savoir si c'est plus simple, je répond non.
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
kiminox > Je me trouve sur le meme probleme que toi. Si par hazard, tu as trouvé une alternetive (hors FSO) je suis preuneur ;)
Messages postés
2
Date d'inscription
jeudi 29 juin 2000
Statut
Membre
Dernière intervention
29 septembre 2003

Merci Matthieu d'avoir pris 'la peine' d'avoir simplifié le code, qui, au passage, est une bonne optimisation le faite de recuperer le boolean de cette maniere.

Lightness: ce genre de commentaire, on s'en passe volontier. Le but ici est (je le rappelle car y'a des gens qui ont un boulet a la place du cerveau):
1/ utilisation du FileSystemObject
2/ Fonction sur laquelle on a la main.

Je suis heureux d'apprendre - à nouveau - que Dir$ est plus simple et patati et patata ...
Mais pourquoi faire simple quand on peut faire compliqué? Surtout si on est payé pour ...
LoL; je fini par croire que ce sont des gens comme toi qui sont simples ...

Allez, bon coding!!

"Deux choses sont infinies, l'univers et la betise humaine. Mais en ce qui concerne l'univers, je n'en ai pas encore acquis la certitude absolue" - A. Einstein.
Messages postés
33
Date d'inscription
jeudi 27 septembre 2001
Statut
Membre
Dernière intervention
4 octobre 2003

Slt,

Quand j'utilise Dir$ pour tester l'existence d'un fichier, j'ai un message d'erreur lorsque le fichier n'existe pas justement :


Dir$(Chemin) me génère ce message avec Chemin = chemin bidon vers un fichier ou lecteur inexistant.
Normalement, il devrait retourner un String vide "" non?

Kim
Messages postés
33
Date d'inscription
jeudi 27 septembre 2001
Statut
Membre
Dernière intervention
4 octobre 2003

Slt,

Quand j'utilise Dir$ pour tester l'existence d'un fichier, j'ai un message d'erreur lorsque le fichier n'existe pas justement :


Dir$(Chemin) me génère ce message avec Chemin = chemin bidon vers un fichier ou lecteur inexistant.
Normalement, il devrait retourner un String vide "" non?

Kim
Messages postés
2
Date d'inscription
jeudi 29 juin 2000
Statut
Membre
Dernière intervention
29 septembre 2003

le truc c'est justement l'utilisation des FileSystemObject...
donc, oui, dir$ c plus rapide (meilleur?). y'a pas photo.
par contre ok avec matthieu, avec le recul c un code assez 'lourd'.
mais bon, je l'ai ecris en 04/2000 comme vous pouvez le constater par vous memes. y'a un p'tit bout de chemin qui s'est fait depuis ;)
bon code. theo.
Messages postés
4
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
20 mai 2003

Un peu lourd ...
Public Function ExistFile(strPath As String) As Boolean
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
ExistFile = fs.FileExists(strPath)
End Function

voilà... c + propre :)

la technique dir$ est plus simple