procedure copydirAtoB(sourdir,destdir:string); var searchrec:Tsearchrec; begin if (findfirst(Sourdir+'\*.doc',faAnyFile,searchrec)=0) then begin copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false); while (findnext(searchrec)=0) do copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false); end; end; *.doc 换为*.*为所有文件
var sr:TSearchRec; OK:Integer; begin OK:= findfirst('C\*.*',faAnyFile,sr)=0 ;//'C:\*.doc' while(OK=0) do begin Memo1.lines.add(sr.name); OK:=FindNext(sr); end; findclose(sr); end;
procedure MySearchFile(sPath, Ext : String); var F : TSearchRec; SearchResult : integer; begin SearchResult := FindFirst(sPath + '\*.*', faAnyFile,F); While SearchResult = 0 do begin if (F.Attr = faDirectory) and (F.name <> '.') and (F.Name <> '..') then begin MySearchFile(sPath + '\' + F.name, EXT); end else begin if UpperCase(ExtractFileExt(F.Name)) = Ext then Form1.ListBox1.items.add(sPath + '\' + F.name); end; SearchResult := FindNext(F); end; FindClose(F); end;procedure TForm1.Button1Click(Sender: TObject); begin MySearchFile('D:\Temp', '.DOC'); end;
pazee(耙子)说得很对,不过有例子会学得快一点,给你一个例子吧 procedure TMainForm.btnSearchClick(Sender: TObject); begin lbFile.Items.Clear; WaitForm:=TWaitForm.Create(Self); SearchFile(lbDirectory.Directory,Trim(Mark.Text)); WaitForm.Free; end;procedure TMainForm.SearchFile(Directory,FileName: String); var SearchRec:TSearchRec; FindResult:Integer; function IsNotation(Dir:String):Boolean; begin Result:=(Dir='.')Or(Dir='..'); end; begin Application.ProcessMessages; if WaitForm.HasCanceled then begin WaitForm.Hide; exit; end else WaitForm.Show; if Directory[Length(Directory)]<>'\' then Directory:=Directory+'\'; FindResult:=FindFirst(Directory+FileName,faAnyFile,SearchRec); while FindResult=0 do begin if Not IsNotation(SearchRec.Name) then lbFile.Items.Add(Directory+SearchRec.Name); FindResult:=FindNext(SearchRec); end; FindResult:=FindFirst(Directory+'*.*',faDirectory,SearchRec); while FindResult=0 do begin if (SearchRec.Attr and faDirectory =faDirectory) and Not IsNotation(SearchRec.Name) then SearchFile(Directory+SearchRec.Name,FileName); FindResult:=FindNext(SearchRec); end; FindClose(SearchRec); end;
用我的吧,我的好用,还简单:) 1、加一个BUTTON、一个COMBOBOX procedure TForm1.Button1Click(Sender: TObject); var SearchRec: TSearchRec; begin if FindFirst('D:\*.DBF',$00000010,SearchRec)=0 then begin if not((SearchRec.Name='.') or (SearchRec.Name='..')) then ComboBox1.Items.Add(SearchRec.Name); while FindNext(SearchRec)=0 do if not((SearchRec.Name='.') or (SearchRec.Name='..')) then ComboBox1.Items.Add(SearchRec.Name); end else begin ShowMessage('没有找到'); close; end;end;
别老要代码,提高解决问题的能力更重要。
var
searchrec:Tsearchrec;
begin
if (findfirst(Sourdir+'\*.doc',faAnyFile,searchrec)=0) then
begin
copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false);
while (findnext(searchrec)=0) do
copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false);
end;
end;
*.doc 换为*.*为所有文件
sr:TSearchRec;
OK:Integer;
begin
OK:= findfirst('C\*.*',faAnyFile,sr)=0 ;//'C:\*.doc'
while(OK=0) do
begin
Memo1.lines.add(sr.name);
OK:=FindNext(sr);
end;
findclose(sr);
end;
var
F : TSearchRec;
SearchResult : integer;
begin
SearchResult := FindFirst(sPath + '\*.*', faAnyFile,F);
While SearchResult = 0 do
begin
if (F.Attr = faDirectory) and (F.name <> '.') and (F.Name <> '..') then
begin
MySearchFile(sPath + '\' + F.name, EXT);
end
else
begin
if UpperCase(ExtractFileExt(F.Name)) = Ext then
Form1.ListBox1.items.add(sPath + '\' + F.name);
end;
SearchResult := FindNext(F);
end;
FindClose(F);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
MySearchFile('D:\Temp', '.DOC');
end;
procedure TMainForm.btnSearchClick(Sender: TObject);
begin
lbFile.Items.Clear;
WaitForm:=TWaitForm.Create(Self);
SearchFile(lbDirectory.Directory,Trim(Mark.Text));
WaitForm.Free;
end;procedure TMainForm.SearchFile(Directory,FileName: String);
var
SearchRec:TSearchRec;
FindResult:Integer;
function IsNotation(Dir:String):Boolean;
begin
Result:=(Dir='.')Or(Dir='..');
end;
begin
Application.ProcessMessages;
if WaitForm.HasCanceled then
begin
WaitForm.Hide;
exit;
end
else
WaitForm.Show;
if Directory[Length(Directory)]<>'\' then
Directory:=Directory+'\';
FindResult:=FindFirst(Directory+FileName,faAnyFile,SearchRec);
while FindResult=0 do
begin
if Not IsNotation(SearchRec.Name) then
lbFile.Items.Add(Directory+SearchRec.Name);
FindResult:=FindNext(SearchRec);
end;
FindResult:=FindFirst(Directory+'*.*',faDirectory,SearchRec);
while FindResult=0 do
begin
if (SearchRec.Attr and faDirectory =faDirectory) and Not IsNotation(SearchRec.Name) then
SearchFile(Directory+SearchRec.Name,FileName);
FindResult:=FindNext(SearchRec);
end;
FindClose(SearchRec);
end;
1、加一个BUTTON、一个COMBOBOX
procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec: TSearchRec;
begin
if FindFirst('D:\*.DBF',$00000010,SearchRec)=0 then
begin
if not((SearchRec.Name='.') or (SearchRec.Name='..')) then
ComboBox1.Items.Add(SearchRec.Name);
while FindNext(SearchRec)=0 do
if not((SearchRec.Name='.') or (SearchRec.Name='..')) then
ComboBox1.Items.Add(SearchRec.Name);
end
else begin
ShowMessage('没有找到');
close;
end;end;