Asynchrone Dateisuche nach Muster
C#
Medium
async
Aufgabe «Asynchrone Dateisuche nach Muster»
Schreiben Sie ein asynchrones Programm, das ein Stammverzeichnis und ein Dateinamensmuster (mit Unterstützung von '*' und '?') als Eingabe erhält. Das Programm soll asynchron und rekursiv alle Unterverzeichnisse durchsuchen, alle Dateien finden, die dem Muster entsprechen, und deren vollständige Pfade ausgeben. Für jede gefundene Datei müssen asynchron die ersten 1024 Bytes gelesen und deren SHA256-Hash (als Hexadezimalzeichenfolge) berechnet werden. Die Ausgabe muss nach dem Dateipfad sortiert sein. Einschränkungen: Die Anzahl der Dateien überschreitet 1000 nicht, die Verschachtelungstiefe beträgt bis zu 10, die Dateigröße kann beliebig sein, aber die ersten 1024 Bytes werden immer gelesen.
Eingabeformat
Erste Zeile: Stammverzeichnis (absoluter oder relativer Pfad). Zweite Zeile: Dateinamensmuster (kann '*' und '?' enthalten).
Ausgabeformat
Für jede gefundene Datei eine Zeile ausgeben: "<vollständiger Pfad> <SHA256-Hash der ersten 1024 Bytes>". Die Zeilen sind lexikografisch nach dem Pfad sortiert. Wenn die Datei leer ist, wird der Hash von einer leeren Zeichenfolge berechnet.
Beispiele
Beispiel 1
EINGABE
/tmp/testdir
file?.dat
AUSGABE
Beispiel 2
EINGABE
Programming is fun
AUSGABE
Beispiel 3
EINGABE
3
1 2 3
4 5 6
7 8 9
AUSGABE
Beispiel 4
EINGABE
hello world
world
java
AUSGABE
main.cs