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);

  • 相关阅读:
    e.srcElement和e.target使用例子
    转载:jQuery点击tr实现checkbox选中的方法
    html和css居中
    转载:JQuery Resizable详解
    转载:JS实现ArrayList类
    【55】运行至当前位置
    【58】使用‘数据提示’修改变量值
    虚拟机Vmware 7与XP Mode
    听小说 JS Hook
    【54】Visual studio Tip:创建一个带有条件的断点
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940605.html
Copyright © 2011-2022 走看看