如果有希望看代码的同志,如下
我没把代码放在问题,觉得这样利于大家看)
procedure tform1.findFILE(path:string);
var sr:tsearchrec;
systime:tsystemtime;//系统时间
localfiletime:tfiletime;//文件时间
datetime:tdatetime;
begin
//开始查找
if FindFirst(path+'*.*',faanyfile, sr) = 0 then //搜索任意文件
begin
repeat
//如果属性为目录,并且文件名不是系统根目录
if (sr.Attr=fadirectory) and (sr.Name<>'.') and (sr.Name<>'..') then
begin
findFILE(path+sr.Name+'/');//再次搜索目录下的目录
end;
until findnext(sr)<>0 ;//搜索下一个文件夹,操作失败,返回非0
findclose(sr); //关闭释放资源
end;
//遍历目录下的文件
if findfirst(path+edit1.Text,faanyfile,sr)=0 then
begin
repeat
//如果是文件,并符合条件,就在表格中罗列出来
if (sr.Attr<>fadirectory) then
begin
Stringgrid1.RowCount:=count+2; //动态设定stringgrid对象的行数
stringgrid1.Cells[0,count+1]:=path+sr.Name;//文件名
stringgrid1.Cells[1,count+1]:=inttostr(round(sr.Size div 1024))+'KB';//文件大小
stringgrid1.Cells[2,count+1]:=datetostr(FileDateToDateTime(sr.Time));//创建时间
count:=count+1;
end;
until findnext(sr)<>0 ;//继续搜索下一个
findclose(sr);//结束搜索
end;
self.StatusBar1.Panels[0].Text:='共搜索到'+inttostr(count)+'个文件';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
pathname:string;
begin
count:=0;
stringgrid1.RowCount:=2;
self.StatusBar1.Panels[0].Text:='';
pathname:=label5.Caption;//取得搜索路径
if copy(pathname,length(pathname),1)<>'/' then
pathname:=pathname+'/'
else
pathname:=pathname;
findfile(pathname);
end;