Recherche asynchrone de fichiers par motif

C# Medium async

Tâche «Recherche asynchrone de fichiers par motif»

Écrivez un programme asynchrone qui accepte en entrée un répertoire racine et un motif de nom de fichier (avec prise en charge de '*' et '?'). Le programme doit parcourir de manière asynchrone tous les sous-répertoires de manière récursive, trouver tous les fichiers correspondant au motif et afficher leurs chemins complets. Pour chaque fichier trouvé, il faut également lire de manière asynchrone les premiers 1024 octets et calculer leur hachage SHA256 (sous forme de chaîne hexadécimale). La sortie doit être triée par chemin de fichier. Contraintes : le nombre de fichiers ne dépasse pas 1000, la profondeur d'imbrication jusqu'à 10, la taille du fichier peut être quelconque, mais les premiers 1024 octets sont toujours lus.

Format d\ entrée

Première ligne : répertoire racine (chemin absolu ou relatif). Deuxième ligne : motif de nom de fichier (peut contenir '*' et '?').

Format de sortie

Pour chaque fichier trouvé, afficher une ligne : "<chemin complet> <hachage SHA256 des premiers 1024 octets>". Les lignes sont triées par chemin dans l'ordre lexicographique. Si le fichier est vide, le hachage est calculé à partir d'une chaîne vide.

Exemples

Exemple 1

ENTRÉE
/tmp/testdir file?.dat
SORTIE

Exemple 2

ENTRÉE
Programming is fun
SORTIE

Exemple 3

ENTRÉE
3 1 2 3 4 5 6 7 8 9
SORTIE

Exemple 4

ENTRÉE
hello world world java
SORTIE
main.cs