登陆

Delphi遍历文件夹及子文件夹

Delphi代码
  1. {-------------------------------------------------------------------------------  
  2. 过程名:    MakeFileList 遍历文件夹及子文件夹  
  3. 作者:      SWGWEB  
  4. 日期:      2007.11.25  
  5. 参数:      Path,FileExt:string   1.需要遍历的目录 2.要遍历的文件扩展名  
  6. 返回值:    TStringList  
  7.  
  8.    Eg:ListBox1.Items:= MakeFileList( 'E:\极品飞车','.exe') ;  
  9.        ListBox1.Items:= MakeFileList( 'E:\极品飞车','.*') ;  
  10. -------------------------------------------------------------------------------}  
  11. function MakeFileList(Path,FileExt:string):TStringList ;   
  12. var  
  13. sch:TSearchrec;   
  14. begin  
  15. Result:=TStringlist.Create;   
  16.   
  17. if rightStr(trim(Path), 1) <> '\' then  
  18.     Path := trim(Path) + '\'  
  19. else  
  20.     Path := trim(Path);  
  21.  
  22. if not DirectoryExists(Path) then  
  23. begin  
  24.     Result.Clear;  
  25.     exit;  
  26. end;  
  27.  
  28. if FindFirst(Path + '*', faAnyfile, sch) = 0 then  
  29. begin  
  30.     repeat  
  31.        Application.ProcessMessages;  
  32.        if ((sch.Name = '.') or (sch.Name = '..')) then Continue;  
  33.        if DirectoryExists(Path+sch.Name) then  
  34.        begin  
  35.          Result.AddStrings(MakeFileList(Path+sch.Name,FileExt));  
  36.        end  
  37.        else  
  38.        begin  
  39.          if (UpperCase(extractfileext(Path+sch.Name)) = UpperCase(FileExt)) or (FileExt='.*') then  
  40.          Result.Add(Path+sch.Name);   
  41.        end;   
  42.     until FindNext(sch) <> 0;   
  43.     SysUtils.FindClose(sch);   
  44. end;   
  45. end;   

« 上一篇 | 下一篇 »