Parcours de fichier d'un répertoire

Contenu du snippet

Ceci étais destiné à parcourir un rep donné à la recherche de fichier log..
Je crois que vous saurez vous débrouiller..

PS: Je n'ai mis que les déclaratons nécessaires...

Source / Exemple :


'Permet de trouver le premier fichier d'un répertoire
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

'Permet de trouver le fichier suivant dans un répertoire
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

'Définit la grandeur maximale pour un chemin d'accès
Private Const MAX_PATH = 260

'Définit la date de création d'un fichier
Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
End Type

'Contient les informations relatives à un fichier
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 * MAX_PATH
        cAlternate As String * 14
End Type

Dim Rep As Long
Dim Data As WIN32_FIND_DATA

Private sub Parcours

    'Permet de trouver le premier fichier du répertoire
    Rep = FindFirstFile(strPath_Log & "*.*", Data)

    intNbr_Fich_Log = 0
    
    'Boucle qui parcourt tous les fichiers d'un répertoire
    While FindNextFile(Rep, Data)
        DoEvents
        intPosTemp = InStr(1, Data.cFileName, ".", vbTextCompare)
        strRep = Trim(Right(Data.cFileName, Len(Data.cFileName) - intPosTemp))
        strRep = Left(strRep, 3)
        
        'Vérifie si le fichier est un fichier log
        If LCase(strRep) = "log" Then
            ReDim Preserve Logs(UBound(Logs) + 1)
            Logs(UBound(Logs) - 1) = Data.cFileName
            intNbr_Fich_Log = intNbr_Fich_Log + 1
        End If
    Wend

end sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.