如何遍历整个硬盘的各个目录,就像windows的查找功能那样
解决方案 »
- 在对一个数据集做遍历或循环操作时,不想使数据感知控件(如DBGrid)显示数据怎么办?
- 如何通过Internet连接某一局域网(路由器连接)内的一台服务器上的SQL7.0?在线等待!!!
- 怎样得到一个程序界面上的所有文字
- DateBaseDeskTop数据类型中的$(Money)能转换成Str或者Float吗?
- 通过internet更新数据库的记录和复制记录所对应的资源文件!
- 如何把已经学好的程序变成安装的文件?
- 请问delphi6哪里有下载
- C++Builder转Delphi
- 请教Ado高难度问题,本来有2000分但系统只让我给37分,回头一定补上。
- 声明函数时出错?
- 请问哪儿有数据库下载,DB2,Oracle都行
- 在一窗体中调另一个窗体,的代码怎么写!
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, DBCtrls, Mask, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure search(dir:string);
var
targetpath:string;{目标路径名}
sr:TsearchRec;
begin
{第一阶段:找出初始dir目录下的所有文件,
其中dir变量值由edit1的Text属性确定} targetpath:=extractfilepath(dir);{分解出目标路径名}
if findfirst(dir,faanyfile,sr)=0 then
repeat
if((sr.name<>'.')and(sr.name<>'..'){排除父目录和本目录两个假文件}
and((filegetattr(targetpath+sr.name)and fadirectory)<>fadirectory)){只取文件}
then
form1.memo1.Lines.Add(targetpath+sr.name);{在memo中添加找到的文件}
until findnext(sr)<>0; if findfirst(dir,faanyfile,sr)=0 then
repeat
if((sr.name<>'.')and(sr.name<>'..')){排除父目录和本目录两个假文件}
and((filegetattr(targetpath+sr.name)and fadirectory)=fadirectory){排除文件}
then
search(targetpath+sr.name+'\*.*');{递归调用}
until findnext(sr)<>0;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Clear;{清除数据表memo字段内容}
search(Edit1.Text);{调用Search()函数}
MessageDlg('文件搜索完毕!',mtInformation,[mbOk],0);{结束提示}
end;end.
and((filegetattr(targetpath+sr.name)and fadirectory)<>fadirectory)){只取文件}
改一下