的背景:
我有一个应用程序需要在已安装的.NET框架范围从2.0到4.5的客户端上运行.此应用程序必须能够枚举和执行大量文件(在特定情况下超过200k离散文件).
要构建文件索引,应用程序当前使用System.IO.DirectoryInfo.GetFiles().这会带来性能损失,因为处理组件必须等待整个Path树在开始工作之前被索引.由于一些过时的磁带多重读取器和一些写得不好的固件,遍历某些目录可以触发从磁带读取 - 将处理时间从几十秒增加到几十分钟.
.NET 4.0提供了System.IO.Directory.EnumerateFiles(Path)方法,可以缓解此问题.但是,只有少数数据控制台升级到4.0+,我们对现代化的恳求遭到了敌意.
问题:
是否可以在单个二进制文件中实现GetFiles和EnumerateFiles的方法?实际上,这将是针对.NET 2.0的单个二进制文件,如果在运行时确定4.0框架可用,则能够调用.NET 4.0方法.
在提到之前:更换数据不是我们客户的选择.我试过了.我曾经尝试过吗?