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;

     

  • 相关阅读:
    spring @Async异步方法使用及原理说明
    表达式树使用(一)
    Solr.NET快速入门(九)【二进制文档上传】【完】
    Solr.NET快速入门(八)【多核多实例,映射验证】
    Solr.NET快速入门(七)【覆盖默认映射器,NHibernate集成】
    Solr.NET快速入门(五)【聚合统计,分组查询】
    Solr.NET快速入门(四)【相似查询,拼写检查】
    Solr.NET快速入门(三)【高亮显示】
    Solr.NET快速入门(二)
    Solr快速入门(一)
  • 原文地址:https://www.cnblogs.com/cause/p/3498143.html
Copyright © 2011-2022 走看看