Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB2008 | 12.12.08 |
Dateien eines Ordners mittels LINQ filtern und sortieren Mittels der LINQ-Funktionalität im .NET Framework 3.5 lässt sich eine Dateiliste über ein bestimmtes Verzeichnis ganz einfach und schnell ermitteln. | ||
Autor: DaveS | Bewertung: | Views: 15.051 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
LINQ - eine wunderbare Neuerung im .NET Framework 3.5!
Heute stellen wir ein paar kleine Codeausschnitte vor, mit denen sich alle oder nur bestimmte Dateien eines Ordners mittels LINQ ermitteln lassen. Auch eine Sortierung der Dateiliste nach Name, Änderungsdatum oder auch Erstellungsdatum ist hiermit ganz einfach.
Alle Dateien eines Ordners ermitteln und in einer ListBox sortiert nach Namen anzeigen
Dim di As New IO.DirectoryInfo("c:\windows") ' LINQ-Abfragestring ' alle Dateien ' nach Name sortieren ListBox1.DataSource = (From fi As IO.FileInfo In di.GetFiles() _ Order By fi.Name).ToList ListBox1.DisplayMember = "Name"
Alle Dateien eines Ordners ermitteln und sortiert nach Erstellungsdatum ausgeben
Dim di As New IO.DirectoryInfo("c:\windows") ' LINQ-Abfragestring ' alle Dateien ' nach Erstellungsdatum sortieren ListBox1.DataSource = (From fi As IO.FileInfo In di.GetFiles() _ Order By fi.CreationTime).ToList ListBox1.DisplayMember = "Name"
Nur Textdateien eines Ordners ermitteln und sortiert nach Änderungsdatum ausgeben
Dim di As New IO.DirectoryInfo("c:\windows") ' LINQ-Abfragestring ' nur Textdateien (*.txt) ' nach Änderungsdatum sortieren ListBox1.DataSource = (From fi As IO.FileInfo In di.GetFiles() _ Where fi.Extension Like ".txt" Order By fi.LastAccessTime).ToList ListBox1.DisplayMember = "Name"
Alle JPG-Dateien eines Ordners ermitteln, die nicht älter als 3 Monate sind
Dim di As New IO.DirectoryInfo("c:\windows") ' LINQ-Abfragestring ' nur Textdateien (*.txt) ' nach Änderungsdatum sortieren ListBox1.DataSource = (From fi As IO.FileInfo In di.GetFiles() _ Where fi.Extension Like ".jpg" And fi.CreationTime > Now.AddMonths(-3) _ Order By fi.LastAccessTime).ToList ListBox1.DisplayMember = "Name"