如何快速获取一个指定的文件夹中所有文件(包含子目录)的信息。(2万个文件以上)

varphone 2005-12-06 10:55:02
如题,我现在用的是递归方式来检索文件,文件少还无所谓,一多起来就很耗时了。
有什么办法可以再5秒钟以内获取最少2万个文件的信息呢?

还有就是检索出来的信息我是用链表来装的,算法是用汇编写的,是否链表的储存方式要比较耗时呢?
...全文
656 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
25xxx25 2006-03-29
  • 打赏
  • 举报
回复
gz
nkwesley 2006-03-29
  • 打赏
  • 举报
回复
一般都是用递归的
lsgt 2006-03-29
  • 打赏
  • 举报
回复
关注
ncucf 2006-03-25
  • 打赏
  • 举报
回复
文件多用递归慢?这是什么逻辑?
文件多并不是等于层次多,如果文件全部都在一个文件夹内,那么即使你用递归写的算法,
他也不‘递归’啊-。-

我觉得这个速度的瓶颈可能是出在动态的内存分配上。
___________________________________________________
是哦,如果不是多层次的话,跟递归就几乎无关了!直接获得fat表什么的也未必快,其中的转换也许还不如用api函数! 我觉得上面的人说的很在理~
brushington 2006-03-25
  • 打赏
  • 举报
回复
我也觉得主要是硬盘的速度,和算法关系不大(除非内存不够)。
可以考虑其它替代方法,这要看你的应用的,假如你要把它放入界面列表中,可以在5秒内先把读出的部分显示出来,其它部分用多线程继续读--让人感觉好像是5秒内读完的
prettywolf 2006-03-24
  • 打赏
  • 举报
回复
jiangsheng(蒋晟.Net[MVP]) 所说的要有索引才行的吧,
在我的机器Winxp获取16000个文件大概要8秒左右.
如果处理得当5秒获得2万个文件的信息还是可以的吧,还要看机器速度.
主要是文件名,大小,各种时间的吧.
he_sl 2006-03-24
  • 打赏
  • 举报
回复
学习
watt 2006-03-22
  • 打赏
  • 举报
回复
不用递归的方法,你自己用廉表把文件串起来,由上向下进行处理。递归是由下向上处理,用到的堆太多。
jxbicestare 2006-03-17
  • 打赏
  • 举报
回复
文件多用递归慢?这是什么逻辑?
文件多并不是等于层次多,如果文件全部都在一个文件夹内,那么即使你用递归写的算法,
他也不‘递归’啊-。-

我觉得这个速度的瓶颈可能是出在动态的内存分配上。
prettywolf 2006-03-16
  • 打赏
  • 举报
回复
BT在创建种时就是用非递归方法,所称是很快的,可以参考一下.
蒋晟 2005-12-07
  • 打赏
  • 举报
回复
Did u consider MSN or Google Desktop Search?
varphone 2005-12-06
  • 打赏
  • 举报
回复
自己读文件分配表能否比用FindFirstFile()+FindNextFile()快点呢?
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
2W个以上,不管是用堆栈还是递归,要5秒以内估计。。。。不知道,呵呵。
用汇编写的不一定比c写的快。
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
。。。。。。
如果要一次性全部读出来 。。。。。。
快乐鹦鹉 2005-12-06
  • 打赏
  • 举报
回复
把递归拆开。记得上学时数据结构这门课,有专门讲如何将递归变为非递归。递归需要大量的进栈和出栈处理,比较耗时,改为非递归方式处理,应该能快不少。不过能不能达到5秒以内就不太清楚了。
littlegang 2005-12-06
  • 打赏
  • 举报
回复
程序要综合考虑
是否可以在进行其它操作的同时进行文件搜索,或者使用适当的提示
而不是一味地在提高单个过程的速度上下苦功
littlegang 2005-12-06
  • 打赏
  • 举报
回复
“自己读文件分配表能否比用FindFirstFile()+FindNextFile()快点呢?”
会的,但比较难
要速度快,就是要优化程序,少用高级别API,即使如此,2w个文件在5秒完成的可能性很少
DrSmart 2005-12-06
  • 打赏
  • 举报
回复
在这里不能用递归了!!!!!1


1.文件数很多要求快递归的速度,咱么心里都明白

2.这也是最重要的是,你要厉遍2w个文件,递归要用栈的空间,可能引起栈空间耗尽发生crash获取系统hang的严重问题

3.在描述搜索算法时,c比asm好的多,并且asm也是这么写,还是告诉楼主用c的堆来解决
oyljerry 2005-12-06
  • 打赏
  • 举报
回复
还是遍历递归
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
我觉得不会。

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧