- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi XE 枚举指定目录及子目录下的所有文件
procedure DoEnumAllFiles(strPath: string;FileList: TStrings);{功能:枚举指定目录及子目录下的所有文件}
var
sr: TSearchRec;
begin
if strPath = '' then Exit;
strPath := IncludeTrailingPathDelimiter(strPath);
if not DirectoryExists(strPath) then Exit;
if FindFirst(strPath + '*.*', System.SysUtils.faAnyFile, sr) = 0 then
begin
try
repeat
//非目录的,就是文件
if (sr.Attr and System.SysUtils.faDirectory = 0 ) then
begin
FileList.Add(strPath + sr.Name);
end;
until FindNext(sr) <> 0;
finally
System.SysUtils.FindClose(sr);
end;
end;
//查找子目录。
if FindFirst(strPath + '*', System.SysUtils.faDirectory, sr) = 0 then
begin
try
repeat
if (sr.Attr and System.SysUtils.faDirectory<>0) and (sr.Name<>'.') and (sr.Name<>'..') then
begin
DoEnumAllFiles(strPath + sr.Name, FileList);
end;
until FindNext(sr) <> 0;
finally
FindClose(sr);
end;
end;
end;