设为首页 加入收藏

TOP

TDirectory.GetDirectories 获取指定目录下的目录
2014-01-14 21:14:41 来源:互联网 作者: 【 】 浏览:414次 评论:0

使用函数:

         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:\tmp' 目录下的所有以'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:\tmp', //'H:\tmp'目录
            'hi*',    //'hi'开头的文件夹
            TSearchOption(1), //'H:\tmp'目录中的所有目录
            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;
复制代码
您看到此篇文章时的感受是:
Tags: 责任编辑:administrator
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇TDirectory.CreateDirectory 完整.. 下一篇没有了

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

相关栏目

最新文章

图片主题

热门文章

推荐文章

相关文章

广告位