搜索电脑上全部特定文件(如可执行文件)的最快算法(200分)

  • 主题发起人 主题发起人 analyst
  • 开始时间 开始时间
A

analyst

Unregistered / Unconfirmed
GUEST, unregistred user!
搜索电脑上全部特定文件(如可执行文件)的最快算法
 
没有捷径,逐一遍历把,要有捷径的话,杀毒软件厂商早用上了,<br><br>---
 
只能找出盘符,挨个递归了,能有什么算法啊[8D]
 
除非是用Google桌面搜索类似的办法, 提前建立索引, 否则就只能是递归遍历了, 呵呵
 
哪位能提供具体代码呀
 
在搜索前先建立全盘资料文件分布情况的数据库。。。。。
 
procedure FindExeFromPath(aPath: string; aMemo: TMemo);<br>var<br>&nbsp; sr: TSearchRec;<br>begin<br>&nbsp; if FindFirst(aPath, faAnyFile, sr) = 0 then<br>&nbsp; begin<br>&nbsp; &nbsp; repeat<br>&nbsp; &nbsp; &nbsp; if (sr.Name = '.') or (sr.Name = '..') then<br>&nbsp; &nbsp; &nbsp; &nbsp; Continue;<br>&nbsp; &nbsp; &nbsp; if sr.Attr and faDirectory &lt;&gt; 0 &nbsp;then<br>&nbsp; &nbsp; &nbsp; &nbsp; FindExeFromPath(ExtractFilePath(aPath) + sr.Name + '/*.*', aMemo)<br>&nbsp; &nbsp; &nbsp; else if SameText(ExtractFileExt(sr.Name), '.exe') then<br>&nbsp; &nbsp; &nbsp; &nbsp; aMemo.Lines.Add(ExtractFilePath(aPath) + sr.Name);<br>&nbsp; &nbsp; until FindNext(sr) &lt;&gt; 0;<br>&nbsp; &nbsp; FindClose(sr);<br>&nbsp; end;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; FindExeFromPath('c:/*.*', Memo1);<br>end;
 
接受答案了.
 
后退
顶部