社区
硬件/系统
帖子详情
如何快速获取一个指定的文件夹中所有文件(包含子目录)的信息。(2万个文件以上)
varphone
2005-12-06 10:55:02
如题,我现在用的是递归方式来检索文件,文件少还无所谓,一多起来就很耗时了。
有什么办法可以再5秒钟以内获取最少2万个文件的信息呢?
还有就是检索出来的信息我是用链表来装的,算法是用汇编写的,是否链表的储存方式要比较耗时呢?
...全文
656
20
打赏
收藏
如何快速获取一个指定的文件夹中所有文件(包含子目录)的信息。(2万个文件以上)
如题,我现在用的是递归方式来检索文件,文件少还无所谓,一多起来就很耗时了。 有什么办法可以再5秒钟以内获取最少2万个文件的信息呢? 还有就是检索出来的信息我是用链表来装的,算法是用汇编写的,是否链表的储存方式要比较耗时呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
我觉得不会。
JAVA上百实例源码以及开源项目
用JAVA开发的
一个
小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录
中
文件
大小及
文件
增减数目的变化。 Java日期选择控件完整源代码 14个目标
文件
内容索引:JAVA源码,系统相关,日历,...
JAVA上百实例源码以及开源项目源代码
Java目录监视器源程序 9个目标
文件
内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的
一个
小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录
中
文件
大小及
文件
增减数目的变化。...
python自动化管理
文件
和
文件
夹
本套课程主要以实用为主方面来讲解使用python代码来操作
文件
和
文件
夹
,包括批量创建
文件
和
文件
夹
,读取和写入
文件
,查询、搜索、遍历
文件
等操作。
新版Android开发教程.rar
Android 是
一个
专门针对移动设备的软件集,它包括
一个
操作系统,
中
间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
java
快速
处理完1
万个
文件
,遍历100
万个
文件
,该如何解决
遍历100
万个
文件
在window系统
中
有
一个
大约100
万个
文件
的
文件
夹
,大小大约29g。现在想用java/C#或其它语言遍历这个
文件
夹
中
的所有
文件
,按照
文件
创建时间分到不同的
文件
夹
中
。自己尝试用java,但内存溢出(主要是
文件
...
硬件/系统
2,641
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章