[OOBASIC] DIRLIST - FONCTION LISTE DES FICHIERS / RÉPERTOIRES

Contenu du snippet

REM liste les fichiers d'un répertoire
REM attr = 16 pour lister les sous-répertoires
Function DirList(rep as string, optional filter as string, optional attr as integer) as variant
	Dim sValue as string
	Dim count as long, i as long


	On Error Goto ErrHandler
	If IsMissing(attr) Then attr = 0
	
	If IsMissing(filter) Then ' compter le nb de fichiers
		count = DirListCount(rep, "", attr)
	Else
		count = DirListCount(rep, filter, attr)
	End If


	Dim ret(count) as string ' déclaration du tableau


	If IsMissing(filter) Then
		sValue = Dir$(rep, attr)
	Else
		sValue = Dir$(rep & filter, attr)
	End If


	Do
		If sValue <> "." and sValue <> ".." Then
				ret(i) = sValue
				i = i + 1
		End If
		sValue = Dir$
	Loop Until sValue = ""


	DirList = ret
Exit Function
ErrHandler:
	Msgbox "Erreur " & err & " (L." & erl & ") : " & error(err) & chr(13) & sValue & " (" & count & ")"
End Function



REM Compter les fichiers dans un répertoire
REM attr = 16 pour lister les sous-répertoires
Function DirListCount(rep as string, optional filter as string, optional attr as integer) as long
	Dim sValue as string
	Dim count as long


	On Error Goto ErrHandler
	If IsMissing(attr) Then attr = 0
	
	If IsMissing(filter) Then
		sValue = Dir$(rep, attr)
	Else
		sValue = Dir$(rep & filter, attr)
	End If
	Do
		If sValue <> "." and sValue <> ".." Then
			'If GetAttr( rep & sValue) <> attr Then 
			count = count + 1
		End If
		sValue = Dir$
	Loop Until sValue = ""
	DirListCount = count-1
Exit Function
ErrHandler:
	Msgbox "Erreur " & err & " (L." & erl & ") : " & error(err) & chr(13) & sValue & " (" & count & ")"
End Function



Compatibilité : VB6, VBA

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.