Tipp 0217 DirectoryInfo mit LINQ in DatagridView
Autor/Einsender:
Datum:
  Michael Werner
19.10.2013
Entwicklungsumgebung:   VB.Net 2008
Framework:   3.5
LINQ ist nicht dasselbe wie die SQL-Abfragesprache für Datenbanken, obwohl LINQ auch diese Abfragen bereitstellt. LINQ beherrscht viel mehr. In unserem Tipp wird eine  Abfrage im Datei-System durchgeführt. Im Tipp werden Ordnerinformationen mit LINQ ausgelesen und in einem DataGridView darstellen. Alle Ordner in C:\ werden aufgelistet und mit allen DirectoryInfo-Daten dargestellt. Die sprachintegrierte Abfrage (Language-Integrated Query, LINQ) leistet Abfragen in erstaunlicher Einfachheit und Vielseitigkeit (ab Framework 3.5). Dabei werden die Abfrageergebnisse  als stark typisierte Objekte zurückgegeben.
Mit dem Anbieter LINQ to Objects können speicherinterne Auflistungen und Arrays abgefragt werden. Bedingung: Die Objekte müssen die IEnumerable-Schnittstelle oder die IEnumerable<(Of <(T>)>)-Schnittstelle unterstützt. Ein System.IO.DirectoryInfo-Objekt erfüllt dies. Es werden "echte" Objekte zurückgegeben, die in diesem Beispiel im DataGridView dargestellt werden. Ein schlichtes DataGridView1.DataSource = (From f In dirinfo.GetDirectories).ToList reicht aus, um die Datenstruktur abzubilden. Durch Doppelklick in eine Reihe im DataGridView werden durch eine erneute Abfrage die SubObjekte dargestellt (Unterordner oder Dateien). Durch ESC können Sie zurück ins Root-Verzeichnis springen. Der System.Linq-Namespace ist standardmäßig in allen Visual Basic-Projekten schon importiert, muss also nicht mehr hinzugefügt werden.
 
Private Sub GetFolderInfo(ByVal folderPath As String)
  Try
    'Unterordner + DirInfo-Daten anzeigen mit LINQ to object
    Dim dirinfo As New System.IO.DirectoryInfo(folderPath)
    DataGridView1.Dock = DockStyle.Fill
    DataGridView1.DataSource = (From f In _
        dirinfo.GetDirectories).ToList
    DataGridView1.AutoResizeColumns()
    Catch ex As UnauthorizedAccessException
    MessageBox.Show(ex.Message & Environment.NewLine & _
        "Stellen Sie sicher, dass Sie über ausreichende "_
        "Berechtigungen für den Zugriff auf diese Ressource "_
        "verfügen. Ordner kann nicht geöffnet werden! Fehlende "_
        "Berechtigung!", _
        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  End Try
End Sub
 
Hinweis
Nicht alle Pfade lassen sich durch Doppelklick öffnen, sofern nicht volle Administrationsrechte vorliegen.
Weitere Links zum Thema
Dateien eines Ordners auflisten
Dateien eines Ordners filtern
Dateisystem-Browser

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (14 kB) Downloads bisher: [ 152 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 19. Oktober 2013