我有一个应用程序必须枚举几个文件夹并处理其中的文件。
它必须支持恢复,这意味着它必须从上次处理的文件夹开始。
我正在考虑使用the DirectoryInfo.EnumerateDirectories
method 。我会将最后处理的目录的名称保存在文件中,跳过枚举,直到遇到该目录名称并从那里继续处理。
但是,文档没有说明文件枚举的顺序。
可以安全地假设使用此方法程序将始终处理其余目录吗?或者是否有可能下次程序运行时,目录将以另一种顺序枚举,从而可以留下一些未处理的目录并处理其他目录两次?
如果此方法不安全,什么是好的替代方法?
最佳答案
内部 EnumerateDirectories() 使用 Win32 API FindNextFile() (source code)。来自 MSDN:
“不保证搜索返回文件的顺序(例如字母顺序),并且取决于文件系统。”
关于c# - DirectoryInfo.EnumerateDirectories 是否对项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739420/