VB.Net: Im Dateisystem suchen mit LINQ

 Dim aH() As String = (From f In

                                      Directory.GetFiles(SuchOrdner, "*", SearchOption.AllDirectories)
                                      Where
                                          (
                                          f.EndsWith(".dotx") Or
                                          f.EndsWith(".dotm") Or

                                          f.EndsWith(".docx") Or

                                          f.EndsWith(".docm") Or
                                          f.EndsWith(".dot") Or
                                          f.EndsWith(".doc")
                                          ) And (Not f.Contains("~"))
                                     Select f ).ToArray()

 

Als ich so eine Anweisung zum ersten Mal gesehen habe, musste ich mir glatt die Augen reiben! Häh?Was ist das denn?

Mit einer einzigen Anweisung werden hier alle Word-Dateien in einem Suchordner und desse Unterordner gefunden. Die kompletten Dateinamen werden im Array aH() abgelegt. Cool, oder!?

Das ist LINQ!  LINQ  steht für Language Integrated Query und ist ein programmtechnisches Verfahren aus dem Hause Microsoft für den Zugriff auf Daten. Dabei gibt es verschiedene LINQ Provider für verschiedene Datenquellen.

Der Vorteil:

LINQ-Anweisungen werden direkt in den Code geschrieben und können somit schon zur Entwurfszeit von der Entwicklungsumgebung auf Fehler geprüft werden.

Ohne LINQ werden Abfragen üblicherweise in Abfragestrings geschrieben (ADO, DAO). Diese werden erst zur Laufzeit interpretiert. Fehler, die dabei entstehen, sind gravierender und schwieriger zu analysieren.

 

Beispiel:

Ich habe eine kleines Beispiel-Projekt mit Microsoft Visual Studio Community 2015 erstellt, das hier heruntergeladen werden kann.

Download
Zip-Datei mit dem Projekt
Auf Knopfdruck werden alle Word-Dokumente eines ausgewählten Verzeichnisses und seiner Unterverzeichnisse in einer Listbox ausgegeben.
Beispiel_Dateiliste_20170117.zip
Komprimiertes Archiv im ZIP Format 14.4 KB

Interessante Links zum Thema:

Kommentar schreiben

Kommentare: 0