Ich habe einen Ordner mit zwei Dateien:
Darüber hinaus verarbeitet eine Drittanbieter-App die Dateien wie folgt:
folderPath
und eine searchPattern
aus einer Datenbank Directory.GetFiles(folderPath, searchPattern)
aus, verarbeitet alle Dateien, die dem Filter entsprechen, und verschiebt die Dateien anschließend in einen Archivordner. Es stellt sich heraus, dass ich meine zwei Dateien in verschiedene Archivordner verschieben muss, also muss ich sie separat behandeln, indem ich verschiedene searchPatterns zur Verfügung stelle, um sie einzeln auszuwählen. Bitte beachten Sie, dass ich die App von Drittanbietern nicht ändern kann, aber ich kann die Ziele von searchPattern und datei in meiner Datenbank ändern.
Mit searchPattern
kann ich Awesome.File.20091031_123002.txt
auswählen, ohne Awesome.File.Summary.20091031_123152.txt
?
Awesome.File. ???????? _ ??????. txt
Das Fragezeichen (?) dient als Platzhalter für einzelne Zeichen.
Ich wollte meine dürftigen linq Fähigkeiten hier versuchen ... Ich bin mir sicher, dass es eine elegantere Lösung gibt, aber hier ist meine:
%Vor%Dies setzt voraus, dass sich außer den beiden Dateien keine anderen Dateien im Verzeichnis befinden. Sie können das Muster hier jedoch an Ihre Anforderungen anpassen (z. B. "Awesome.File" zum Musterstart hinzufügen).
Wenn Sie die Sammlung von jedem iterieren, sollten Sie bekommen, was Sie brauchen.
Laut der Dokumentation unterstützt searchPattern nur die * **** und ? Platzhalter. Sie müssten Ihren eigenen Regex-Filter schreiben, der die Ergebnisse von Directory.GetFiles übernimmt und weitere Filterlogik anwendet.
Wenn Sie Linq nicht verwenden möchten, hier ist ein Weg.
Öffentlicher Unter-FileChecker (ByVal filePath als String)
%Vor%Tags und Links c#