function TForm1.FileSearch(PathName:string): TStrings; var F : TSearchRec; Found : Boolean; begin Result := TStringList.Create; ChDir(PathName); Found := (FindFirst('*.*', faAnyFile, F) = 0); while Found do begin if (F.Name = '.') or (F.Name = '..') then begin Found := (FindNext(F) = 0); Continue; end; if (F.Attr and faDirectory)>0 then begin Application.ProcessMessages; FileSearch(F.Name); end; Result.Add(F.Name);//添加文件名 Found := (FindNext(F) = 0); end; FindClose(F);//可以输出到一个控件中 ChDir('..\');end;这里我是做成一个函数,你也可以做成一个过程
1 dos 的xcopy命令 2 api函数fileoperation,看看帮助,我也记不清楚了
有个控件fileListBox,在win3.1下,把路径给它,就得到所有的文件了
//取得dir目录下的文件名列表 function GetDirFilename(Dir: string):Tstringlist; var sr: TSearchRec; fr: Integer; stra1:Tstringlist; begin stra1:=Tstringlist.Create; fr := FindFirst(dir + '*.*', faAnyFile, sr); while fr = 0 do begin if (sr.Name <> '.') and (sr.Name <> '..') then begin stra1.add(sr.Name);
FindNext
就可以实现,不过里面还要用到 递归 !<delphi5开发人员指南>中有实例
var
F : TSearchRec;
Found : Boolean;
begin
Result := TStringList.Create; ChDir(PathName);
Found := (FindFirst('*.*', faAnyFile, F) = 0);
while Found do
begin
if (F.Name = '.') or (F.Name = '..') then
begin
Found := (FindNext(F) = 0);
Continue;
end; if (F.Attr and faDirectory)>0 then
begin
Application.ProcessMessages;
FileSearch(F.Name);
end; Result.Add(F.Name);//添加文件名
Found := (FindNext(F) = 0);
end; FindClose(F);//可以输出到一个控件中
ChDir('..\');end;这里我是做成一个函数,你也可以做成一个过程
2 api函数fileoperation,看看帮助,我也记不清楚了
function GetDirFilename(Dir: string):Tstringlist;
var
sr: TSearchRec;
fr: Integer;
stra1:Tstringlist;
begin
stra1:=Tstringlist.Create;
fr := FindFirst(dir + '*.*', faAnyFile, sr);
while fr = 0 do
begin
if (sr.Name <> '.') and (sr.Name <> '..') then
begin stra1.add(sr.Name);
result:=stra1;
end;
fr := FindNext(sr);
end;
FindClose(sr);
end;这是我软件中的一段函数,记得加分啊