procedure TForm1.Button1Click(Sender: TObject); var SearchRec:TSearchRec; ext,AppPath:string; begin listbox1.Items.Clear; AppPath:='d:\test\'; ext:='*.*'; FindFirst(AppPath+ext,faAnyFile-faDirectory,SearchRec); listbox1.Items.Add(SearchRec.Name); while FindNext(SearchRec)=0 do listbox1.Items.Add(SearchRec.Name); listbox1.items.count为你需要的结果 listbox中为所有的文件名 end;
procedure getFiles(dir: string); var search: TSearchRec; begin if FindFirst(dir+'*',faAnyFile,search)=0 then begin repeat if (((search.Attr and faDirectory)>0) and (not(leftStr(search.Name,1)='.'))) then getFiles(dir+search.Name+'\') else begin if ExtractFileExt(search.Name)='.'+GetAllFiles.Ext.Text then begin GetAllFiles.Results.AddItem(search.Name,Application); GetAllFiles.Caption:='GetAllFiles ['+intToStr(GetAllFiles.Results.Count)+']'; end; end; until not(FindNext(search)=0); end; FindClose(search); end;procedure TGetAllFiles.BtnGoClick(Sender: TObject); begin GetAllFiles.Caption:='GetAllFiles [0]'; Results.Clear; if not(rightStr(Path.Text,1)='\') then Path.Text:=Path.Text+'\'; if DirectoryExists(Path.Text) then getFiles(Path.Text); End;procedure TGetAllFiles.FormCreate(Sender: TObject); begin GetAllFiles.Caption:='GetAllFiles [0]'; end;
var
tmp:TFileLIstBox;
begin
tmp:=tfilelistbox.Create(nil);
tmp.ParentWindow:=form1.Handle ;
tmp.Hide ;
tmp.Directory:='c:\winnt';
showmessage(inttostr(tmp.Count));
tmp.Free ;
end;
FindNextFile
用这两个函数配合使用可以求得指定目录下的文件个数,而且可以同时计算出目录的个数.
var
SearchRec:TSearchRec;
ext,AppPath:string;
begin
listbox1.Items.Clear;
AppPath:='d:\test\';
ext:='*.*';
FindFirst(AppPath+ext,faAnyFile-faDirectory,SearchRec);
listbox1.Items.Add(SearchRec.Name);
while FindNext(SearchRec)=0 do
listbox1.Items.Add(SearchRec.Name);
listbox1.items.count为你需要的结果
listbox中为所有的文件名
end;
var search: TSearchRec;
begin
if FindFirst(dir+'*',faAnyFile,search)=0 then
begin
repeat
if (((search.Attr and faDirectory)>0) and (not(leftStr(search.Name,1)='.'))) then getFiles(dir+search.Name+'\')
else
begin
if ExtractFileExt(search.Name)='.'+GetAllFiles.Ext.Text then
begin
GetAllFiles.Results.AddItem(search.Name,Application);
GetAllFiles.Caption:='GetAllFiles ['+intToStr(GetAllFiles.Results.Count)+']';
end;
end;
until not(FindNext(search)=0);
end;
FindClose(search);
end;procedure TGetAllFiles.BtnGoClick(Sender: TObject);
begin
GetAllFiles.Caption:='GetAllFiles [0]';
Results.Clear;
if not(rightStr(Path.Text,1)='\') then Path.Text:=Path.Text+'\';
if DirectoryExists(Path.Text) then getFiles(Path.Text);
End;procedure TGetAllFiles.FormCreate(Sender: TObject);
begin
GetAllFiles.Caption:='GetAllFiles [0]';
end;