获取指定目录下的所有文件名(包括子目录)

来源:互联网 发布:数学计算软件 编辑:程序博客网 时间:2024/06/12 00:59
  1. procedure GetFileListE(MainPath:string;FileList:TStrings);
  2. var
  3.   Result:   Integer;
  4.   SearchRec:   TSearchRec;
  5.   sMainpath:   String;
  6. begin
  7.   if   MainPath[Length(MainPath)]='/'   then     sMainpath:=MainPath
  8.   else   sMainpath:=MainPath+'/';
  9.   Result:=FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
  10.   if   SearchRec.Name<>''   then
  11.   begin
  12.     while (Result = 0 ) do
  13.     begin
  14.       if ((SearchRec.Attr and faDirectory ) <> 0 ) and
  15.             ((SearchRec.Name<>'.'and (SearchRec.Name<>'..')) then
  16.         begin
  17.            FileList.Add('Directory:'+SearchRec.Name);
  18.            GetFileListE(sMainPath+SearchRec.Name,FileList);
  19.         end
  20.       else
  21.       begin
  22.         if(SearchRec.Name<>'.')and (SearchRec.Name<>'..'then
  23.         begin
  24.            FileList.Add(SearchRec.Name);
  25.         end;
  26.       end;
  27.       Result:=FindNext(SearchRec);
  28.     end;
  29.   end;
  30.   FindClose(SearchRec);
  31. end;