findfirst是被用来搜索某一指定文件,那有没有一个 function是被用来搜索某一指定文件夹的呢?
或既可搜索文件夹又可搜索文件?
或既可搜索文件夹又可搜索文件?
解决方案 »
- 两个class,Access Violation问题,但是不知道问题出现在哪里,帮我看看!
- WORD在软件内部使用与窗外打开的操作
- Cardinal(pChar(ClassName)) 的工作原理问题
- ×××××××××××关于DBTeeChart的问题,立刻结帖!!!××××××××××××
- 个人如何通过法律的手段保护自己的软件?
- 垃圾邮件软件是如何搜索到可用的电子信箱的,这一点一直无法理解?
- 您好。我的英文差,看不懂delphi帮助中的控件介绍,您能给我一份控件手册? 谢谢。
- 请教一个IE的问题,简单,100分
- 怎样把一幅图片各点的颜色输出到一个文本文件里?
- 请问个位DELPHI高手?
- 在ADOQUERY保存数据库的时候,状态值该如何动态控制呢?希望大家提供解决方案!
- 初学报表,想知道如何使用QReport将刚刚存入数据表中的一条记录预览、打印出来?
unit unit1;interfaceuses
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.