异步按模式搜索文件

C# Medium async

任务 «异步按模式搜索文件»

编写一个异步程序,该程序接收根目录和文件名模式(支持 '*' 和 '?')作为输入。程序应异步递归遍历所有子目录,找到所有匹配模式的文件,并输出它们的完整路径。对于每个找到的文件,还需异步读取前1024个字节,并计算其SHA256哈希值(以十六进制字符串形式表示)。输出应按文件路径排序。限制条件:文件数量不超过1000个,嵌套深度最多10层,文件大小不限,但始终读取前1024个字节。

输入格式

第一行:根目录(绝对路径或相对路径)。第二行:文件名模板(可包含 '*' 和 '?')。

输出格式

对于每个找到的文件,输出一行:"<完整路径> <前1024字节的SHA256哈希>"。各行按路径的字典序排序。如果文件为空,则哈希值从空字符串计算。

示例

示例 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