Feedback

VB - File List

Veröffentlicht von am 8/15/2010
(1 Bewertungen)
Erstellen Sie eine Dateiliste in einer ListBox.
Die Dateiliste in einer ListBox anzeigen:
z.B.: FileList(ListBox1, "C:\")
    Private Function FileList(ByVal Output As ListBox, ByVal Dir As String)
        For Each Directory As String In My.Computer.FileSystem.GetDirectories(Dir, FileIO.SearchOption.SearchTopLevelOnly, "*.*")
            Dim Folder As String = Directory.Replace(Dir, "")
            Output.Items.Add("[" & Folder & "]")
        Next

        For Each File As String In My.Computer.FileSystem.GetFiles(Dir, FileIO.SearchOption.SearchTopLevelOnly, "*.*")
            Output.Items.Add(File)
        Next
    End Function
Abgelegt unter file, list, dir, directory, vb, vb .net, listbox.

2 Kommentare zum Snippet

Martin Stühmer schrieb am 10/19/2011:
Hallo,

deine Variante hat ein paar kleinere Fehler und würde bei Ordnern mit sehr vielen Unterordnern deutlich an Performance verlieren.

.NET 4.0

Private Sub FileList(ByRef Output As ListBox, ByVal Dir As String)
Dim Directory As New DirectoryInfo(Dir)

For Each subDirectory As DirectoryInfo In Directory.EnumerateDirectories("*.*", SearchOption.TopDirectoryOnly)
Output.Items.Add(subDirectory.Name)
Next

For Each subFile As FileInfo In Directory.EnumerateFiles("*.*", SearchOption.TopDirectoryOnly)
Output.Items.Add(subFile.Name)
Next
End Sub
hackman schrieb am 10/27/2011:
@Martin Stühmer
quatsch, deine methode würde auch keinen deut schneller laufen - die Add funktion ist jetzt nicht so wirklich eine der langsamen funktionen, bei denen sich eine asynchrone ausführung lohnen würde.

ein beginupdate und endupdate bei einer listview würde da viel mehr helfen, oder eine virtuelle auflistung ....

vor allem würde es mich interessieren, wie ordner mit vielen unterordnern das ganze verlangsamen, wenndie "SearchTopLevelOnly" option da noch mit drin ist ...
 

Logge dich ein, um hier zu kommentieren!