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:\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;