Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1373 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Tester existance d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tester existance d'un fichier

n°712781
Emmanuelle
Posté le 30-04-2004 à 14:15:26  profilanswer
 

Recoucou
 
Dans mon programme VB, je souhaiterai intégrer un condition où on teste si le fichier existe.
 
J'ai trouvé qu'il faut écrire le langage suivant, dans un module,  :
Public Function FichierExiste(ByVal Nom As String) As Boolean
On Error Resume Next
    Dim attrib As Integer  
    attrib = GetAttr(Nom)
    If (Err <> 0) Then
        FichierExiste = False
    Else
        If ((attrib And vbDirectory) = vbDirectory) Then
            FichierExiste = False
        Else
            FichierExiste = True
        End If
    End If
End Function
 
et dans mon interface
if (FichierExiste (nom)) then ...  
 
Mais je ne sais pas à quoi corrrespond :
nom
Getattr
vbDirectory
 
Je vous remercie d'avance
 
Bon weekend
 
 
 

mood
Publicité
Posté le 30-04-2004 à 14:15:26  profilanswer
 

n°712848
drasche
Posté le 30-04-2004 à 15:18:50  profilanswer
 

pourtant c'est expliqué dans la doc :o (mais je suppose que tu ne l'as pas si tu viens poser la question ici)
 
http://msdn.microsoft.com/
 
GetAttr permet d'avoir les attributs fichiers (Archive, Readonly, System, ...) vbDirectory est l'un de ces attributs possibles. Cependant, j'ai vu avec l'expérience que ce n'est pas la meilleure méthode. Personnellement, je teste directement la date du fichier, ça ressemble à ceci:
 

Code :
  1. Public Function FileExists(ByVal strFileName As String) As Boolean
  2.     Dim dtm As Date
  3. On Error GoTo ErrHandler
  4.     dtm = FileSystem.FileDateTime(strFileName)
  5.     FileExists = True
  6.     Exit Function
  7. ErrHandler:
  8.     FileExists = False
  9. End Function


 
J'avais déjà posté ce code ailleurs mais j'avais la flemme de le retrouver :o


Message édité par drasche le 30-04-2004 à 15:19:08

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°713938
Emmanuelle
Posté le 03-05-2004 à 10:33:02  profilanswer
 

Coucou
 
Je te remerciepour ton aide.  
Effectivement je n'ai pas l'aide sous VB.
 
Bonne journée

n°714517
prog1001
Posté le 03-05-2004 à 18:05:25  profilanswer
 

Il y a beaucoup plus simple que ça :
 
Utilises la fonction Dir("Adresse du fichier et son nom" )
Exemple:  
 

Code :
  1. Dim FileExist as boolean 'puisque tu tiens a revoyer Vrai si le fichier existe
  2. If Dir("C:\Test.txt" ) = "" then
  3. FileExist = False
  4. Else
  5. FileExist = True
  6. EndIf


 
Salut !


Message édité par prog1001 le 03-05-2004 à 18:06:10
n°714519
drasche
Posté le 03-05-2004 à 18:09:30  profilanswer
 

tu sais seulement à quoi ça sert Dir?  ça sert à faire une liste. Et une liste, ce n'est pas le but ici. Parce ce que la liste, faut bien la stocker quelque part et ça bouffe un peu. C'est pas le plus petit code qui est forcément le meilleur ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°714528
prog1001
Posté le 03-05-2004 à 18:27:53  profilanswer
 

hey ! drasche faut pas vexer ! En tout cas tu repond vite !
 
je sais pas ceux qui bouffe le plus de memoire, c'était juste pour montrer un code simple.
Quel genre de liste tu crées avec Dir ?
 
voici l'aide de vb pour dir :

Citation :

Dim MyFile, MyPath, MyName
' Renvoie "WIN.INI" si ce fichier existe.
MyFile = Dir("C:\WINDOWS\WIN.INI" )  
 
' Renvoie le nom de fichier avec l'extension indiquée.
' Si plusieurs fichiers *.ini
' existent, le premier fichier trouvé est renvoyé.
MyFile = Dir("C:\WINDOWS\*.INI" )


 
comme quoi Dir est bien fait pour tester et rechercher des adresses de fichier !
 
Aller, sans rancune !
A+

n°714595
drasche
Posté le 03-05-2004 à 19:42:52  profilanswer
 

euh je suis pas vexé ;)
 
pour en rajouter une, tu appelles ça l'aide? :D
 
pis l'exemple que j'y trouve est un poil plus long ;)
 

Code :
  1. Dim MyFile, MyPath, MyName
  2. ' Returns "WIN.INI"  if it exists.
  3. MyFile = Dir("C:\WINDOWS\WIN.INI" ) 
  4. ' Returns filename with specified extension. If more than one *.ini
  5. ' file exists, the first file found is returned.
  6. MyFile = Dir("C:\WINDOWS\*.INI" )
  7. ' Call Dir again without arguments to return the next *.INI file in the
  8. ' same directory.
  9. MyFile = Dir
  10. ' Return first *.TXT file with a set hidden attribute.
  11. MyFile = Dir("*.TXT", vbHidden)
  12. ' Display the names in C:\ that represent directories.
  13. MyPath = "c:\"   ' Set the path.
  14. MyName = Dir(MyPath, vbDirectory)   ' Retrieve the first entry.
  15. Do While MyName <> ""   ' Start the loop.
  16.    ' Ignore the current directory and the encompassing directory.
  17.    If MyName <> "." And MyName <> ".." Then
  18.       ' Use bitwise comparison to make sure MyName is a directory.
  19.       If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
  20.          Debug.Print MyName   ' Display entry only if it
  21.       End If   ' it represents a directory.
  22.    End If
  23.    MyName = Dir   ' Get next entry.
  24. Loop


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°715396
prog1001
Posté le 04-05-2004 à 17:00:19  profilanswer
 

Bin j'ai pas tout mis, je voulais pas te décourager a le lire :lol:
 
Au fait,toi qui a l'air de t'y connaitre j'ai lancé un sujet sur le forum intitulé "Utilisé un dll que j'ai crée avec vb" c'était pour savoir comment appeler les fonctions que j'ai écrit dans ce dll a partir d'un projet different que le projet de creation du Dll.
 
Si tu sais, merci de me le faire savoir.  
Aller salut!  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Tester existance d'un fichier

 

Sujets relatifs
Ctrl ouverture fichierfichier met
comment executer un fichier .sh avec une cmd PHP ?Enrichissement via SQL d'un fichier ascii délimité
fichier MXF pour les nuls[PHP] venez tester mon forum
PRB de copy de fichier dans char *Formulaire + nom de fichier unique
comment créer un fichier d'aide a la sauce visual?Perl - tester l'existance d'un fichier/repertoire
Plus de sujets relatifs à : Tester existance d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR