我希望能够从目录中递归地枚举具有特定搜索模式(例如 *.txt)的文件。但有几个限制:
- 该机制应该非常有效。目标是逐个枚举文件(使用 IEnumerable),这样如果有一个巨大的文件列表,那么获取一个文件进行处理就不会花费很长时间。
- 枚举应该随机返回文件,这样如果我的程序的两个实例都在尝试枚举目录,那么两者都不应该以相同的顺序看到文件。
鉴于这些要求,DirectoryInfo.EnumerateFiles看起来很有希望,只是它不满足第二个要求。如果我删除性能考虑,解决方案很简单(只需获取整个集合并在访问之前随机化序列)。
有人可以建议在 .net 3.5/4.0 中实现 C# 的可能选择吗?