2017-01-17 2 views
0

Ich habe einige Dateien, die mehrere Erweiterungen (ex: D * .P *. C *) Ich bin ein Prozess zum Verschieben von Dateien mit bestimmten Erweiterungen wie der oben genannten und .csv und. Arc-Dateien. Ich bin nicht in der Lage, D * .P * .C * -Dateien zu filtern. Hier ist der Code unten. Jede Hilfe wird sehr geschätzt.Suche Datei mit mehreren Erweiterungen C#

var entries = 
    Directory.GetFileSystemEntries(_sourceLocation_FRUD, "*.*", SearchOption.AllDirectories) 
      .Where(s => (s.StartsWith("D")) 
          && (s.Contains(".P")) 
          && (s.EndsWith(".C"))); 
+0

Sie nach '.C' enthalten, etwas zu Ihrem Muster ändern oder sollten sie es enden? –

+0

Bitte erläutern Sie, was Sie wollen und was Sie bekommen. –

+0

's.StartsWith (" D ")) && (s.Contains (". P "))' sieht OK aus, aber 'EndsWith (". C ")' passt nicht zu allem, das Zeichen nach dem 'hat. C'. – DeanOC

Antwort

4

Der zweite Parameter ist nicht Regex, aber es ist eine Form von wildcard search.

Entfernen Sie den LINQ-Code und geben Sie im Methodenaufruf Ihr Erweiterungsmuster an. Da die * 0 oder mehr Zeichen bedeutet, sollten Sie in der Lage sein, einfach Ihre D*.P*.C* Muster zu verwenden.

var entries = 
    Directory.GetFileSystemEntries(_sourceLocation_FRUD, "D*.P*.C*", SearchOption.AllDirectories) 

Unter der Annahme, nur die Erweiterung beginnt mit D, nicht den vollständigen Dateinamen, Sie *.D*.P*.C* müssen möglicherweise die Dateinamen

+0

Ich habe andere Erweiterungsdateien zu filtern, so dass ich nicht verwenden konnte Diese – Ramya

+0

Noch kann ich noch eine Aussage haben, um diese Dateien auch zu wählen, wie Sie sagten. Vielen Dank @Grant Winney – Ramya

+0

Gern geschehen @Ramya. –

Verwandte Themen