DELPHI 递归遍历文件代码

procedure MakeFileList(Path,FileExt:string;var List:TStringList);
//Path为需要遍历的文件目录。最后有斜杠无斜杠都可以
//FileExt后缀名要加点 如 '.exe' 
//List为找到的文件的路径地址列表
//2012-12-13 一路随云
var
sch:TSearchrec;
begin
if List=nil then List:=TStringlist.Create;
Path:=Trim(Path);
if Path[Length(Path)] <> '\' then Path := Path+ '\';

if not DirectoryExists(Path) then
begin
    List.Clear;
    exit;
end;
if FindFirst(Path + '*', faAnyfile, sch) = 0 then
begin
    repeat
       Application.ProcessMessages;
       if ((sch.Name = '.') or (sch.Name = '..')) then Continue; //如果找到的是当前目录 就继续下一次查找

       if DirectoryExists(Path+sch.Name) then    //如果某个目录存在,则进入这个目录递归找到文件
       begin
         MakeFileList(Path+sch.Name,FileExt,List);
       end

       else

       begin
         if (UpperCase(extractfileext(Path+sch.Name)) = UpperCase(FileExt)) or (FileExt='.*') then
         List.Add(Path+sch.Name);
       end;
    until FindNext(sch) <> 0;
    SysUtils.FindClose(sch);
end;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值