Tous les sous repertoires d'un repertoire

cs_MEGATRIX Messages postés 124 Date d'inscription jeudi 3 janvier 2002 Statut Membre Dernière intervention 31 décembre 2011 - 3 juin 2002 à 23:38
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 - 3 juin 2002 à 23:59
Comment connaitre tout les dossiers (Repertoires) dans un dossier (repertoire).
merci
@++
megatrix

1 réponse

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
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 Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_SYSTEM = &H4

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

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
Rejoignez-nous