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

vérifier l'existance d'un fichier

20 réponses
Avatar
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

10 réponses

1 2
Avatar
Gilles MOUGNOZ
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


Avatar
Jacques93
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.
Avatar
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" a écrit dans le message de news:

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


Avatar
Patrice Henrio
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" <le a écrit dans le message de news:

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" a écrit dans le message de news:

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!
Avatar
Jean-marc
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/
Avatar
shoei
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.



Avatar
Jacques93
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.
Avatar
Vincent Guichard
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
Avatar
thierry.bipppppp
Le monsieur te dit qu'il ne veut pas passer par la commande open .....




"LE TROLL" <le a écrit dans le message de news:

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" a écrit dans le message de news:

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






Avatar
Guy DETIENNE
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" a écrit dans le message de news:


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


1 2