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;

     

  • 相关阅读:
    让开发效率“飞起”的VS Code 插件
    转-webpack学习笔记--整体配置结构
    十二、vue中watch原理
    十一、vue生命周期诠释--带图
    十、vue mixins 的用法
    八、Web移动端Fixed布局的解决方案
    七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面
    六、vue如何缓存页面
    五、vue常用UI组件
    vue组件递归
  • 原文地址:https://www.cnblogs.com/cause/p/3498143.html
Copyright © 2011-2022 走看看