![]() |
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 | |
|
|
Nicht alle Pfade lassen sich durch Doppelklick öffnen, sofern nicht volle Administrationsrechte vorliegen.
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (14
kB)
|
Downloads bisher: [ 235 ]
|
|
|