Tester si un fichier ou un dossier existe


Propriétés du code


Date de création : 29/12/2006 à 15:35:00
6 Commentaire(s)
  MadMatt

 

Présentation


Comme dit dans le titre, renvoie TRUE si le fichier ou dossier existe, FALSE sinon

 

Code


Public Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Public Const INVALID_FILE_ATTRIBUTES As Long = &HFFFFFFFF


'---------------------------------------------------------------------------------------
' Procedure : FileExists
' DateTime  : 29/12/2006 15:22
' Author    : Vb System Library
' Purpose  : Renvoie TRUE si le fichier ou dossier existe, FALSE dans le cas contraire
' Params    : FileName : Chemin d'accès au fichier
'---------------------------------------------------------------------------------------
Public Function FileExists(ByRef FileName As String) As Boolean
    FileExists = (GetFileAttributes(FileName) <> INVALID_FILE_ATTRIBUTES)
End Function


 

Historique


Voici l'historique des modifications de ce code :
30/12/2006 : Petite erreur corrigée
Le 30/12/2006 par MadMatt : Legere modif

 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


De sebdraluorg le 30/12/2006 à 15:39


plop

Tu as aussi l'api PathFileExists
Faudrait tester pour voir quelle est la methode la plus fiable et ou rapide

Exemple:

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

Public Function FileExist(ByVal File As String) As Boolean

FileExist = CBool(PathFileExists(File))

End Function

 

De MadMatt le 30/12/2006 à 15:40


Ah ouais je savais pas, je connais pas la librairie shlwapi.dll, elle est par défaut sur tous les pc je suppose ?
Pour la méthode que je donne, c'est Renfield et Brunews qui la conseillait, effectivement faudrait voir laquelle est la plus rapide.

 

De MadMatt le 30/12/2006 à 15:44


C'est fait,
pour 100000 itérations, PathFileExists prend 530 ms et GetFileAttributes prend 430-440 ms
ps : j'ai utilisé : http://www.vbfrance.com/codes/TEMPS-EXECUTION-BOUT-CODE-BENCHMARK-POUR-OPTIMISATION_39065.aspx

 

De sebdraluorg le 30/12/2006 à 15:55


Eh wai c'est une dll Windows, elle est presente dans tous les windows depuis Win95+IE4

Y a pas mal de fonctions interessante dans cette librairie voir:
http://www.allapi.net/apilist/p.shtml

 

De MadMatt le 30/12/2006 à 16:00


Ah ouais y'a plein de petites fonctions utiles, genre récupérer la lettre de lecteur ça peut servir etc...

 

De sebdraluorg le 30/12/2006 à 16:09


Ok pour le test, c'est pas surprenant, PathFileExist dois faire le meme genre d'opération...

sinon pour les fonctions wai ca simplifie la vie...

 

Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.016 s
www.mnapoli.fr