Cette fonction renvoie un tableau de string avec le chemin d'accès de tous les fichiers se trouvant dans l'arborescence spécifiée en paramètre. exemple d'utilisation :
'Renvoie tous les fichiers
Dim tab() as String = getFilesInDirectory("d:\")
'Renvoie tous les fichiers ayant l'extension .mp3 ou .avi
Dim tab() as String = getFilesInDirectory("d:\","mp3;avi")
Source / Exemple :
'Charge un tableau de String avec la liste des chemins d'accès des fichiers d'une arborescence
Private Function getFilesInDirectory(ByVal path As String, Optional ByVal ext As String = "") As String()
'Déclarations
Dim dir As IO.Directory
Dim arrFiles As New ArrayList
Dim file As String
Dim tabExt() As String = Split(ext, ";")
Dim nbExt As Int32 = tabExt.Length
Dim i, j As Int32
Dim trouve As Boolean
Try
'On copie tous les "fichiers" du répertoire path...
'... dans le tableau arrFiles
arrFiles.AddRange(dir.GetFileSystemEntries(path))
'Pour chaque fichiers du tableau...
i = 0
While i < arrFiles.Count
file = arrFiles(i)
'...si c'est un répertoire
If dir.Exists(file) Then
'...alors on ajoute tous les fichiers qu'il contient...)
arrFiles.AddRange(getFilesInDirectory(file, ext))
End If
'... si le fichier n'a pas l'extension souhaitée...
'... ou que c'est un répertoire alors...
'... on supprime la ligne SANS incrémenter i...
'... car en supprimant, on va "remonter" tous les éléments...
'... suivant cette référence et l'élément suivant l'élément courant...
'... n'aurait pas été traité si on aurait incrémenté i
If dir.Exists(file) Then
arrFiles.RemoveAt(i)
Else
'test d'extension
trouve = False
j = 0
While Not trouve AndAlso j <= nbExt - 1
If file.EndsWith("." & tabExt(j)) Then
trouve = True
Else
j += 1
End If
End While
'S'il a pas trouvé les extensions... on le supprime
If Not trouve Then
arrFiles.RemoveAt(i)
Else
i += 1
End If
End If
End While
Return (arrFiles.ToArray(GetType(String)))
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur")
Return (Nothing)
End Try
End Function
Conclusion :
Pour les explications, regardez les commentaires, je trouve que c'est suffisant!
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.