zoukankan      html  css  js  c++  java
  • TDirectory.GetDirectories 获取指定目录下的目录

    使用函数:

             System.IOUtils.TDirectory.GetDirectories

    所有重载:

    class function GetDirectories(const Path: string): TStringDynArray;
    class function GetDirectories(const Path: string;  const Predicate: TFilterPredicate): TStringDynArray;
    class function GetDirectories(const Path,  SearchPattern: string): TStringDynArray; overload; inline; static;
    class function GetDirectories(const Path, SearchPattern: string;  const Predicate: TFilterPredicate): TStringDynArray;
    class function GetDirectories(const Path, SearchPattern: string;  const SearchOption: TSearchOption): TStringDynArray; overload; static;
    class function GetDirectories(const Path, SearchPattern: string;  const SearchOption: TSearchOption; const Predicate: TFilterPredicate): TStringDynArray; overload; static;
    class function GetDirectories(const Path: string;  const SearchOption: TSearchOption; const Predicate: TFilterPredicate): TStringDynArray; overload; static;

    描述:返回给定目录下的子目录列表。返回类型TStringDynArray,动态字符串数组。

    参数说明:

    参数名

    说明

    Path

    指定要进行枚举的目录

    SearchPattern

    枚举模板(比如*app 匹配所有app名称结束的文件夹)

    SearchOption

    枚举选项,是否顶层枚举模式或递归枚举模式

    T SearchOption(0)为当前录,不含子目录以

    T SearchOption(1)所有目录,递归形式

    Predicate

    一个用来的过滤不想要的结果的函数(匿名需重写),用来更今精细的过滤

    异常处理: 目录无效或目录不存在

    例一:

    查找所有'H: mp' 目录下的所有以'hi'开头且文件属性为隐藏的文件夹

    代码部分:

    var
        sDir: string;
        dynArr: TStringDynArray;
        FilterPredicate: TDirectory.TFilterPredicate;
    begin
        ListBox1.Clear;
        FilterPredicate :=  //重写函数
              function(const Path: string; const SearchRec: TSearchRec): Boolean
            begin
                Result := Boolean(SearchRec.Attr and faHidden); //判断是否隐藏文件
            end;
        try
            dynArr := TDirectory.GetDirectories(
                'H:	mp', //'H:	mp'目录
                'hi*',    //'hi'开头的文件夹
                TSearchOption(1), //'H:	mp'目录中的所有目录
                FilterPredicate); //附加过滤参数
            // for I := 0 to Length(dynArr) - 1 do
            //      ListBox1.Items.Add(dynArr[I]);
            for sDir in dynArr do
                ListBox1.Items.Add(sDir);
        except
            on e: Exception do
            begin
                MessageDlg(e.Message, mtError, [mbok], 0);
                Exit;
            end;
        end;
    end;

     

  • 相关阅读:
    SDSF output to PS
    3亿人出走后的中国农村,路在何方?
    oracle function
    C8051特点
    c8051单片机注意事项:
    一个因xdata声明引起的隐含错误
    宏 函数 内联函数inline
    字符串与液晶显示的一个问题
    XON/OFF
    excel之实验数据处理线性拟合
  • 原文地址:https://www.cnblogs.com/cause/p/3498143.html
Copyright © 2011-2022 走看看