zoukankan      html  css  js  c++  java
  • 遍历目录及其子目录下面的某类型文件

    网上一大把这种方法,可惜许多不能用。这个我试过了,可以。

    USES Masks

    procedure GetFileListEx(FilePath, ExtMask: string; FileList: TStrings; SubDirectory: Boolean = True); //遍?目?及子目?
    function Match(FileName: string; MaskList: TStrings): boolean;
    var
        i: Integer;
    begin
        Result := False;
        for i := 0 to MaskList.Count - 1 do
        begin
          if MatchesMask(FileName, MaskList[i]) then
          begin
            Result := True;
            break;
          end;
        end;
    end;
    var
    FileRec: TSearchrec;
    MaskList: TStringList;
    begin
    if DirectoryExists(FilePath) then
    begin
        if FilePath[Length(FilePath)] <> '/' then FilePath := FilePath + '/';
        if FindFirst(FilePath + '*.*', faAnyfile, FileRec) = 0 then
        begin
          MaskList := TStringList.Create;
          try
            ExtractStrings([';'], [], PChar(ExtMask), MaskList);
            FileList.BeginUpdate;
            repeat
              if ((FileRec.Attr and faDirectory) <> 0) and SubDirectory then
              begin
                if (FileRec.Name <> '.') and (FileRec.Name <> '..') then
                  GetFileListEx(FilePath + FileRec.Name + '/', ExtMask, FileList);
              end
              else
              begin
                if Match(FilePath + FileRec.Name, MaskList) then
                  FileList.Add(FilePath + FileRec.Name);
              end;
            until FindNext(FileRec) <> 0;
            FileList.EndUpdate;
          finally
            MaskList.Free;
          end;
        end;
        FindClose(FileRec);
    end;
    end;
    调用演示

    GetFileListEx(Edit1.Text,'*.pas;*.inc',pasFileList,true);

  • 相关阅读:
    NameError:name ‘xrange’ is not defined
    CNN卷积核反传分析
    在定义卷积时为什么要对其中一个函数进行翻转
    Python的浮点数损失精度问题
    Python实现im2col和col2im函数
    2018.04.19
    4 Git 基础
    Clash Royale开发日志
    2018-04-12
    python urllib2
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940605.html
Copyright © 2011-2022 走看看