3

我在一个文件夹中有 814,652 个 XML 文件,文件名是从 1 到 814,652 的整数。

在我的应用程序中,我将一些 xml 文件加载到数据表中,但加载不是即时的,有时最多延迟 3 秒。

是因为文件夹包含太多文件吗?

如果我可以将文件分成多个文件夹,那会加快速度吗?

我只是根据从数据网格中的选定行获得的文件名一次读取一次

请注意,我不需要遍历文件列表,我只需要加载指定的文件名。

 int filename = ;//get the value from the focused row in the datagrid
 mydatatable.ReadXml(path + @"\xmlfiles\" + filename + ".xml");

更新:将文件划分为子文件夹并最小化每个文件夹的文件数量使其更慢。

4

2 回答 2

1

假设您有 NTFS 文件系统(FAT32 不会在一个目录中保存 800k 文件),这篇文章提供了您问题的答案,以及一些指标和建议。不,分成几个目录只会损害性能。

在我看来,最好将所有文件合并为一个,并将其映射到内存中,或者使用更方便的存储,专门为快速索引和访问而设计,如数据库。

于 2013-04-11T19:01:25.883 回答
0

我最终使用 sql server 将文件分成表并使用 EXI 压缩 XML。

于 2013-04-12T14:18:03.380 回答