在delphi中有没有哪个函数可以直接得到一个子文件夹中文件的个数。还是只能用FINDFIRST和FINDNEXT计算?请各位高手不吝赐教!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    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;
      

  2.   

    FindFirstFile
    FindNextFile
    用这两个函数配合使用可以求得指定目录下的文件个数,而且可以同时计算出目录的个数.
      

  3.   

    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;
      

  4.   

    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;