Búsqueda asíncrona de archivos por patrón
C#
Medium
async
Tarea «Búsqueda asíncrona de archivos por patrón»
Escriba un programa asíncrono que reciba como entrada un directorio raíz y un patrón de nombre de archivo (con soporte para '*' y '?'). El programa debe recorrer asíncronamente todos los subdirectorios de forma recursiva, encontrar todos los archivos que coincidan con el patrón y mostrar sus rutas completas. Para cada archivo encontrado, también se deben leer asíncronamente los primeros 1024 bytes y calcular su hash SHA256 (como una cadena hexadecimal). La salida debe estar ordenada por la ruta del archivo. Restricciones: el número de archivos no supera los 1000, la profundidad de anidamiento es de hasta 10, el tamaño del archivo puede ser cualquiera, pero siempre se leen los primeros 1024 bytes.
Formato de entrada
Primera línea: directorio raíz (ruta absoluta o relativa). Segunda línea: patrón de nombre de archivo (puede contener '*' y '?').
Formato de salida
Para cada archivo encontrado, mostrar una línea: "<ruta completa> <hash SHA256 de los primeros 1024 bytes>". Las líneas están ordenadas por ruta en orden lexicográfico. Si el archivo está vacío, el hash se calcula a partir de una cadena vacía.
Ejemplos
Ejemplo 1
ENTRADA
/tmp/testdir
file?.dat
SALIDA
Ejemplo 2
ENTRADA
Programming is fun
SALIDA
Ejemplo 3
ENTRADA
3
1 2 3
4 5 6
7 8 9
SALIDA
Ejemplo 4
ENTRADA
hello world
world
java
SALIDA
main.cs