Sprache: VB
Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern. Man bekommt die Dateiliste als "List(Of String)" zurück.
Public Class ListFiles
''' <summary>
''' Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern
''' </summary>
''' <param name="Root">Der Ordner dessen Dateien aufgelistet werden sollen</param>
''' <param name="SubFolders">Gibt an ob auch die Unterordner durchsucht werden sollen</param>
Public Shared Function GetFileList(ByVal Root As String, Optional ByVal SubFolders As Boolean = True) As List(Of String)
Dim FileList As New List(Of String)
SeekFiles(Root, FileList, SubFolders)
Return FileList
End Function
Private Shared Sub SeekFiles(ByVal Root As String, ByRef FileArray As List(Of String), ByVal SubFolders As Boolean)
Try
Dim Files() As String = System.IO.Directory.GetFiles(Root)
Dim Folders() As String = System.IO.Directory.GetDirectories(Root)
For i As Integer = 0 To UBound(Files)
FileArray.Add(Files(i).ToString)
Next
If SubFolders = True Then
For i As Integer = 0 To UBound(Folders)
SeekFiles(Folders(i), FileArray, SubFolders)
Next
End If
Catch Ex As Exception
End Try
End Sub
End Class
Public Class ListFiles
''' <summary>
''' Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern
''' </summary>
''' <param name="Root">Der Ordner dessen Dateien aufgelistet werden sollen</param>
''' <param name="SubFolders">Gibt an ob auch die Unterordner durchsucht werden sollen</param>
Public Shared Function GetFileList(ByVal Root As String, Optional ByVal SubFolders As Boolean = True) As List(Of String)
Dim FileList As New List(Of String)
SeekFiles(Root, FileList, SubFolders)
Return FileList
End Function
Private Shared Sub SeekFiles(ByVal Root As String, ByRef FileArray As List(Of String), ByVal SubFolders As Boolean)
Try
Dim Files() As String = System.IO.Directory.GetFiles(Root)
Dim Folders() As String = System.IO.Directory.GetDirectories(Root)
For i As Integer = 0 To UBound(Files)
FileArray.Add(Files(i).ToString)
Next
If SubFolders = True Then
For i As Integer = 0 To UBound(Folders)
SeekFiles(Folders(i), FileArray, SubFolders)
Next
End If
Catch Ex As Exception
End Try
End Sub
End Class
Alte URL:
/snippet/alle-dateien-eines-ordners-auflisten/336
Ok, es gibt eindeutig keine „ordentliche“ Lösung (ich baue auf „einfachen“ Code, weiß nicht, warum alle immer so hochkompliziert denken müssen!) um Ordner innerhalb eines Ordners in einem schönen Array anzuzeigen. Jedenfalls funktioniert o.g. Lösung nicht oder ich bin einfach nur zu blöd, mit den 3 Zeilen Kommentaren die Lösung in mein Projekt einzubinden.
Folgendes funktionierte übrigens auch nicht:
[code]Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sItem As String
Dim sPath As String
sPath = Path.GetDirectoryName(Application.ExecutablePath)
sItem = Dir(sPath, vbDirectory)
Do While sItem <> „“
If sItem <> „.“ And sItem <> „..“ Then
If (GetAttr(sPath & sItem) And vbDirectory) = vbDirectory Then
liste1.Items.Add(sItem)
End If
End If
sItem = Dir()
Loop
End Sub[/code]
Wenn einer den Fehler findet, darf er ihn behalten und für eigene Zwecke missbrauchen. Dies ist der Kommentarbereich, keine Möglichkeit zur Kommunikation untereinander.