【发布时间】:2018-10-23 01:32:06
【问题描述】:
我正在处理大量的文本文件(大约 10^5 到 10^6 个文件)。在每次迭代中,我想选择一个随机数并能够将关联文本文件的内容加载到缓冲区。
现在我的问题是使用什么样的搜索技术来定位文件?
【问题讨论】:
-
这完全取决于您的代码运行的操作系统和文件系统,并且文件名搜索策略差异很大。无论您使用哪种编程语言,它都是一样的,与 C/C++ 无关。
-
操作系统对包含数万个或更多文件的单个目录处理不佳的情况并不少见。一种常见且易于实现的技术是有很大帮助的,即实现分层子目录结构。例如,如果您的文件具有像
504cba1b815bc171这样的“名称”,您可以将该文件存储在50/4c/504cba1b815bc171。 -
一般来说,将一百万个文件放在一个目录中不太可能有好的结果。考虑另一种组织文件的方法。如果您分享一些有关文件命名约定的内容,可能有人对您有一些想法。