vérifier l'existance d'un fichier

Le
shoei
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles MOUGNOZ
Le #15414081
Bonjour, Shoei
Oui, en utilisant fso (FileSystemObject).
Plus d'info ici (par exemple):
http://www.laltruiste.com/coursscriptingruntime/filesystemobject.html
--
Bonne continuation

"shoei" a écrit :
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous


Jacques93
Le #15414071
Bonjour Shoei (moi c'est Nolan ;-) ) et Gilles MOUGNOZ,
Gilles MOUGNOZ a écrit :
Bonjour, Shoei
Oui, en utilisant fso (FileSystemObject).
Plus d'info ici (par exemple):
http://www.laltruiste.com/coursscriptingruntime/filesystemobject.html



Là pour le coup il y a plus simple et plus léger que fso :

If Len(Dir("c:testtoto.xls", vbNormal)) > 0 Then
MsgBox "Le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If

à adapter toutefois si on utilise un chemein UNC, me semble t-il.


Par ailleurs :

http://faq.vb.free.fr/index.php?question6

--
Cordialement,

Jacques.
LE TROLL
Le #15414061
Bonjour,

La réponse que l'on t'a fait est excellente, toutefois, coté code et
pour rester VB, je crois que le plus court c'est de tenter l'ouverture comme
d'habitude en lecture, et s'il y a erreur (introuvable), de créer le
fichier...

dim p
freefile...
on error goto erreur
open input
read...
close
goto suite
erreur:
if err = inexistant = on créé = open OUtput
suite:
etc...


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"shoei"
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous


Patrice Henrio
Le #15414051
pour ma part j'utilise une fonction que j'ai créé et dont je suis tout à
fait satisfait

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA"
_
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As
Long

Public Function ExisteFichier(Fichier As String) As Boolean
Dim WFD As WIN32_FIND_DATA, hSearch As Long
hSearch = FindFirstFile(Fichier, WFD)
ExisteFichier = (hSearch <> -1)
FindClose (hSearch)
End Function

La fonction renvoie True si le fichier existe

Nom_Du_Fichier="MonRépertoire/MonFichier.txt"
If ExisteFichier(Nom_du Fichier) then
TraitementFichierExistant
else
TraitementFichierAbsent
End If


"LE TROLL"
Bonjour,

La réponse que l'on t'a fait est excellente, toutefois, coté code et
pour rester VB, je crois que le plus court c'est de tenter l'ouverture
comme d'habitude en lecture, et s'il y a erreur (introuvable), de créer le
fichier...

dim p
freefile...
on error goto erreur
open input
read...
close
goto suite
erreur:
if err = inexistant = on créé = open OUtput
suite:
etc...


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"shoei"
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous







--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
359 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!
Jean-marc
Le #15414041
shoei wrote:
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par
la commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous



En complément de ce qui é été dit, ne pas oublier de consulter
à ce sujet la FAQ:
http://faq.vb.free.fr/index.php?question)

On y donne 3 implémentations dont aucune n'ouvre le fichier.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
shoei
Le #15414031
Merci a tous pour vos solutions

et bonne route aux motards ;-)


"Jacques93" a écrit :

Bonjour Shoei (moi c'est Nolan ;-) ) et Gilles MOUGNOZ,
Gilles MOUGNOZ a écrit :
> Bonjour, Shoei
> Oui, en utilisant fso (FileSystemObject).
> Plus d'info ici (par exemple):
> http://www.laltruiste.com/coursscriptingruntime/filesystemobject.html

Là pour le coup il y a plus simple et plus léger que fso :

If Len(Dir("c:testtoto.xls", vbNormal)) > 0 Then
MsgBox "Le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If

à adapter toutefois si on utilise un chemein UNC, me semble t-il.


Par ailleurs :

http://faq.vb.free.fr/index.php?question6

--
Cordialement,

Jacques.



Jacques93
Le #15414021
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

La réponse que l'on t'a fait est excellente, toutefois, coté code et
pour rester VB, je crois que le plus court c'est de tenter l'ouverture comme
d'habitude en lecture, et s'il y a erreur (introuvable), de créer le
fichier...

dim p
freefile...
on error goto erreur
open input
read...
close
goto suite
erreur:
if err = inexistant = on créé = open OUtput
suite:
etc...





Et si l'erreur est due à un problème de droit (NTFS) ou de verrouillage
(déjà ouvert avec un Lock), etc., que se passe t-il?

Quelques erreurs possible lors de l'ouverture d'un fichier :

52 : Nom ou numéro de fichier incorrect
53 : Fichier introuvable
54 : Mode d'accès au fichier incorrect
55 : Fichier déjà ouvert
57 : Erreur d'entrée/sortie de périphérique
58 : Ce fichier existe déjà
68 : Périphérique non disponible
69 : Erreur définie par l'application ou par l'objet
70 : Permission refusée
71 : Disque non prêt
75 : Erreur dans le chemin d'accès
76 : Chemin d'accès introuvable

Ne crois pas qu'il y ait un complot contre toi aujourd'hui ;-) , mais
Shoei indique bien dans sa question qu'il n'a pas besoin d'ouvrir le
fichier, mais juste tester son existence.
--
Cordialement,

Jacques.
Vincent Guichard
Le #15414011
Extraits choisis:

Shoei:
>Est-il possible de vérifier l'existance d'un fichier sans passer par la
>commande open et verifier le code erreur?

LE TROLL:
>[...]tenter l'ouverture comme d'habitude en lecture, et s'il y a erreur
>(introuvable)[...]

avec à suivre un exemple de code utilisant la commande open et vérifiant
le code d'erreur.

Dans l'absolu, je pense qu'utiliser Open et tester le code de retour
peut être une bonne idée, mais si le PO demande explicitement une autre
solution, je suppose que ça veux dire qu'il la connaît déjà. Pourquoi
lui resservir?

Vincent Guichard
thierry.bipppppp
Le #15413831
Le monsieur te dit qu'il ne veut pas passer par la commande open .....




"LE TROLL"
Bonjour,

La réponse que l'on t'a fait est excellente, toutefois, coté code et
pour rester VB, je crois que le plus court c'est de tenter l'ouverture
comme d'habitude en lecture, et s'il y a erreur (introuvable), de créer le
fichier...

dim p
freefile...
on error goto erreur
open input
read...
close
goto suite
erreur:
if err = inexistant = on créé = open OUtput
suite:
etc...


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"shoei"
Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous






Guy DETIENNE
Le #15413821
Salut ;O)

Il existe aussi l'API PathFileExists

Utilisation :
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias
"PathFileExistsA" (ByVal pszPath As String) As Long

Msgbox CStr(CBool(PathFileExists("c:MyDirectoryMyFile.exe")))

Guy



"shoei"

Bonjour,

Est-il possible de vérifier l'existance d'un fichier sans passer par la
commande open et verifier le code erreur?
Je n'est pas besoin d'ouvrir le fichier.

merci a tous


Publicité
Poster une réponse
Anonyme