我在一个文件夹上有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");
更新:将文件分成子文件夹并最小化每个文件夹的文件数量使其更慢。
答案 0 :(得分:1)
假设您有NTFS文件系统(FAT32不能在一个目录中保存800k文件),this post提供了您的问题的答案,以及一些指标和建议。 不,分成几个目录只会影响性能。
在我看来,最好将所有文件合并为一个,并将其映射到内存中,或使用更方便的存储,专门用于快速索引和访问,如数据库。
答案 1 :(得分:0)
我最终使用sql server将文件分成表并使用EXI压缩XML。