gpt4 book ai didi

delphi - 对内存中的文件进行排序

转载 作者:行者123 更新时间:2023-12-02 03:51:05 24 4
gpt4 key购买 nike

D2010 Pro,Win Vista 32 位:

我需要解析目录及其子文件夹中的文件,并将文件信息(名称、类型、大小、修改日期……Windows 资源管理器列)读取到内存中。到目前为止,我已经考虑过使用内存表来完成此任务(似乎是显而易见的选择),但由于开销,我仍然犹豫不决。对象的 TDictionary 也可能是一种选择,但我不确定。最重要的是速度和对列执行排序的能力 - 升序或降序。

非常感谢您的想法和建议。

谢谢-菲尔

最佳答案

使用内存数据库是一种选择,但对于一个非常简单的问题来说,它似乎是一个相当繁重的解决方案。另一个需要考虑的选项是使用 TList<TFileDetails>哪里TFileDetailsrecord包含各种文件详细信息。

对于排序,最有效的方法是为要排序的每一列维护一个索引。因此,索引是一个简单的整数数组,表示按特定列排序时记录的顺序。因此,索引数组为 [1, 2, 0]意味着第一项是索引 1,第二项是索引 2第三个是索引 0 。这样做意味着您只需在需要时对每一列进行排序,并且只需执行一次。

也就是说,如果您有很多文件,您甚至只需要维护单独的索引数组。您可能会发现,只需在需要时按需排序,性能就可以接受。我确信资源管理器就是这么做的。

我无法就哪个选项适合您的问题向您提供建议,因为我不知道您的性能限制。但总而言之,以下是增加复杂性的主要选项:

  1. 使用TList<TFileDetails>并根据需要重新排序列表。
  2. 使用TList<TFileDetails>并根据需要构建和保留索引数组。
  3. 使用内存数据库。

关于delphi - 对内存中的文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16364010/

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