跪求各位大哥解疑(关于遍历文件效率) ( 积分: 100 )

  • 主题发起人 主题发起人 MaXsl
  • 开始时间 开始时间
M

MaXsl

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥&nbsp;&nbsp;小弟接触DELPHI时间不长&nbsp;为了写一个对比目录的程序&nbsp;绞尽脑汁了。<br>问题如下:<br>遍历文件夹15000个文件包含在400个文件夹中&nbsp;我用递归遍历的方法&nbsp;效率太低<br>试用过队列遍历&nbsp;效率有所提高&nbsp;<br>但是万万没有达到我所理想的程度<br>试用过迅闪和顶尖更新&nbsp;他们遍历及对比消耗的时间为2-5秒&nbsp;(15000文件包含在400文件夹中)<br>&nbsp;请问下各位大哥有没有好的解决方案&nbsp;或者算法&nbsp;开导下小弟..<br>有源码更好啊&nbsp;&nbsp;想得我都睡不着~哎&nbsp;&nbsp;&nbsp;谢谢咯[:)][:)]
 
[:(]怎么都没人来看下.<br>是我的问题太肤浅不值得回答吗?&nbsp;-.-
 
试试广度优先吧
 
多用几个线程。<br>查到新目录就开一个新线程,然后每个线程都负责当前目录。<br><br>另外我记得LMD里有一个好像叫TSearchFile还是什么名字的组件,支持多线程查找文件,建议你去&nbsp;www.tomore.com&nbsp;或者&nbsp;www.2ccc.com&nbsp;下个完整版,试试看
 
哥们,要如此神速的对比目录,只能读取磁盘文件分配表了。
 
各位&nbsp;我想再讨论下然后散分哈&nbsp;毕竟这问题&nbsp;我不知道说偏还是说难&nbsp;反正就一直没懂<br>还有ufo大哥“读取磁盘文件分配表”我考虑这不现实哈&nbsp;先谢谢你们了[:)]
 
几秒钟内遍历15000个文件,不读文件分配表怎么做?你想啊,磁头重定位一下就要0.1秒种,然后还要读盘花费时间。
 
windows自己都是缓冲索引的。
 
哎&nbsp;再等可能也等不出个芝麻曰&nbsp;还是结贴算了[:(]
 
多人接受答案了。
 
后退
顶部