首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

【求算法】怎么较快的加载文件夹内的千万级别的文件

2012-12-22 
【求算法】如何较快的加载文件夹内的千万级别的文件文件夹A下面,有很多文件(约上千万个)需求:以较快的速度遍

【求算法】如何较快的加载文件夹内的千万级别的文件
文件夹A下面,有很多文件(约上千万个)
需求:
以较快的速度遍历该根目录下的所有文件,把文件内容写入到一块大内存中,并把文件名记录到一个一维数组中。


分析:

因为是加载所有的文件,而文件的特征就是:文件名全是数字,扩展名统一。

单个线程通过递归的方式来遍历所有文件,然后打开,读取,关闭,效率不高。

但是如果使用多线程共同加载的话,,各个线程间如何区分各自要扫描加载的文件,又是个问题。


有没有些建议或者思路?欢迎来谈谈。

[最优解释]
    上千万个文件恐怕不能放到数组里(数组太大造成出现堆破坏的提示),可以放到映射文件里,同样,文件也和映射文件关联,这样文件内容操作速度能快些.
    如果文件名的数字有规律,就可以开多个线程,按数字的大小来分配每个线程遍历文件的范围.如果没有规律,那就开一个线程.主要是在查找上费时间,因为用映射文件后就相当于在内存上操作

热点排行