cs_MEGATRIX
Messages postés124Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention31 décembre 2011
-
3 juin 2002 à 23:38
fredlynx
Messages postés662Date d'inscriptionmercredi 16 janvier 2002StatutModérateurDernière intervention16 octobre 2010
-
3 juin 2002 à 23:59
Comment connaitre tout les dossiers (Repertoires) dans un dossier (repertoire).
merci
@++
megatrix
fredlynx
Messages postés662Date d'inscriptionmercredi 16 janvier 2002StatutModérateurDernière intervention16 octobre 20103 3 juin 2002 à 23:59
Appel fonction par
GetAllFilesFolders CheminDeBase
'-----------------------------------------------------
'Module : FilesBrowser.bas
'-----------------------------------------------------
Option Explicit
Private Const MAX_PATH As Long = 260
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 * MAX_PATH
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
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
(ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Public Sub GetAllFilesFolders(StrChemin As String)
Dim WFD As WIN32_FIND_DATA
Dim hFichier As Long
Dim StrFichier As String
Dim TmpTexte As String
If Right(StrChemin, 1) <> "" Then StrChemin = StrChemin & ""
'Recherche de la première donnée correspondante
'WFD.dwFileAttributes = vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbVolume Or vbDirectory 'Or vbArchive
WFD.dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_COMPRESSED Or FILE_ATTRIBUTE_DIRECTORY Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
hFichier = FindFirstFile(StrChemin & "*.*" & Chr(0), WFD)
If hFichier <> -1 Then
Do
'Extraction du nom du Dossier
StrFichier = TrimNull(WFD.cFileName)
'Teste si le résultat est bien un répertoire
If (WFD.dwFileAttributes And vbDirectory) Then
'Teste si c'est un répertoire "valide"
If (StrFichier <> ".") And (StrFichier <> "..") Then
Debug.Print "Répertoire : " & StrChemin & StrFichier
GetAllFilesFolders StrChemin & StrFichier
End If
Else
'Debug.Print "Fichier : " & StrChemin & StrFichier
End If
'Recherche du dossier suivant
' WFD.dwFileAttributes = vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbVolume Or vbDirectory 'Or vbArchive
WFD.dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_COMPRESSED Or FILE_ATTRIBUTE_DIRECTORY Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
Loop While FindNextFile(hFichier, WFD)
End If
'Fermeture
Call FindClose(hFichier)
End Sub
Public Function TrimNull(StrChaine As String) As String
Dim Posi As Integer
Posi = InStr(StrChaine, Chr(0))
If Posi Then
TrimNull = Left(StrChaine, Posi - 1)
Exit Function
End If
TrimNull = StrChaine
End Function