gpt4 book ai didi

c# - Directory.EnumerateFiles 读取顺序

转载 作者:太空狗 更新时间:2023-10-29 18:03:02 25 4
gpt4 key购买 nike

Directory.EnumerateFiles 方法的默认读取顺序是什么?是否一致?

根据我目前的经验,这似乎是文件创建的日期,但我无法找到对此的确认。

我问的原因是因为我正在处理的程序的一部分将二进制文件从目录加载到对象中,这些对象又被加载到数组中。这些对象通过索引数组相互引用,这意味着它们加载到数组中的顺序需要保持一致(以避免移动索引)。​​

虽然我在这里,但我还有一个小问题。删除文件时,无论我做什么,它显然都会更改加载到数组中的文件的索引。有什么避免这个问题的建议吗?由于担心存储(如果可以避免的话,我宁愿不存储文本键数组)直到现在我一直避免使用字典,但如果这是唯一可行的方法,我可能无论如何都必须实现它。


编辑:根据您的回答中的出色提示,我重构为使用文件名的字典方法。性能影响几乎可以忽略不计,可读性和可维护性都得到了极大的提高,因此效果很好。

最佳答案

.NET 使用的底层 Win32 API 是 FindFirstFileFindNextFiledocumentation specifically states :

The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are usually returned in alphabetical order. With FAT file systems, the names are usually returned in the order the files were written to the disk, which may or may not be in alphabetical order. However, as stated previously, these behaviors are not guaranteed.

所以不,您不能保证返回文件的顺序。其他答案提供了足够的方法来解决此问题。

关于c# - Directory.EnumerateFiles 读取顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14097264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com