取指定文件夾及其子文件夾內指定類型文件列表

//取指定文件夾及其子文件夾內指定類型文件列表

procedure _GetFileList(AStrings: TStrings; ASourFile, FileName: string);
// 調用示例: _GetFileList(FileList, 'c:/', '*.pas')
var
  sour_path, sour_file: string;
  TmpList: TStringList;
  FileRec, subFileRec: TSearchrec;
  i: Integer;
begin
  if rightStr(trim(ASourFile), 1) <> '/' then
    sour_path := trim(ASourFile) + '/'
  else
    sour_path := trim(ASourFile);
  sour_file := FileName;

  if not DirectoryExists(sour_path) then
  begin
    AStrings.Clear;
    exit;
  end;

  TmpList := TStringList.Create;
  TmpList.Clear;

  if FindFirst(sour_path + FileName, faAnyfile, FileRec) = 0 then
  repeat
    if ((FileRec.Attr and faDirectory) = 0) then
      AStrings.Add(sour_path+FileRec.Name);
  until FindNext(FileRec) <> 0;
  if FindFirst(sour_path + '*.*', faAnyfile, FileRec) = 0 then
  repeat
    if ((FileRec.Attr and faDirectory) <> 0) then
    begin
      if ((FileRec.Name<> '.') and (FileRec.Name  <> '..')) then
        _GetFileList(AStrings, sour_path+ FileRec.Name + '/',  sour_file);
    end;
  until FindNext(FileRec) <> 0;
  FindClose(FileRec);
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值