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