c# - DirectoryInfo.EnumerateDirectories 是否对项目进行排序?

标签 c# .net directory enumeration

我有一个应用程序必须枚举几个文件夹并处理其中的文件。

它必须支持恢复,这意味着它必须从上次处理的文件夹开始。

我正在考虑使用the DirectoryInfo.EnumerateDirectories method 。我会将最后处理的目录的名称保存在文件中,跳过枚举,直到遇到该目录名称并从那里继续处理。

但是,文档没有说明文件枚举的顺序。

可以安全地假设使用此方法程序将始终处理其余目录吗?或者是否有可能下次程序运行时,目录将以另一种顺序枚举,从而可以留下一些未处理的目录并处理其他目录两次?

如果此方法不安全,什么是好的替代方法?

最佳答案

内部 EnumerateDirectories() 使用 Win32 API FindNextFile() (source code)。来自 MSDN:

“不保证搜索返回文件的顺序(例如字母顺序),并且取决于文件系统。”

关于c# - DirectoryInfo.EnumerateDirectories 是否对项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739420/

相关文章:

c# - 保存 .text 文件增量

javascript - 如何向动态添加的控件添加唯一的ID(Asp.net MVC)

c# - 为什么 Count 不是无符号整数?

.net - Linq to sql - 删除,如果失败则继续

c# - 使用 System.IdentityModel.Tokens.Jwt 从 1.1 迁移到 2.0 后,JWTAuthentication 在 asp.net core 2.0 中不起作用 - 5.1.4 更新

c# - 无法转换类型 : why is it necesssary to cast twice?

C# 应用程序在切换到 TLS 1.2 后无法再访问网站 - GetResponse() 失败

c# - 获取文件时出现 UnauthorizedAccessException

delphi - TOpenDialog 和空间

c++ - 如何使用 C 或 C++ 获取目录中的文件列表?