Асинхронный поиск файлов по шаблону
C#
Средний
async
Задача «Асинхронный поиск файлов по шаблону»
Напишите асинхронную программу, которая принимает на вход корневую директорию и шаблон имени файла (с поддержкой '*' и '?'). Программа должна асинхронно обойти все поддиректории рекурсивно, найти все файлы, соответствующие шаблону, и вывести их полные пути. Для каждого найденного файла также необходимо асинхронно прочитать первые 1024 байта и вычислить их хэш SHA256 (в виде шестнадцатеричной строки). Вывод должен быть отсортирован по пути файла. Ограничения: количество файлов не превышает 1000, глубина вложенности до 10, размер файла может быть любым, но первые 1024 байта читаются всегда.
Формат ввода
Первая строка: корневая директория (абсолютный или относительный путь). Вторая строка: шаблон имени файла (может содержать '*' и '?').
Формат вывода
Для каждого найденного файла вывести строку: "<полный путь> <хэш SHA256 первых 1024 байт>". Строки отсортированы по пути в лексикографическом порядке. Если файл пустой, хэш считается от пустой строки.
Примеры
Пример 1
ВВОД
/tmp/testdir
file?.dat
ВЫВОД
Пример 2
ВВОД
Programming is fun
ВЫВОД
Пример 3
ВВОД
3
1 2 3
4 5 6
7 8 9
ВЫВОД
Пример 4
ВВОД
hello world
world
java
ВЫВОД
main.cs