Inno Setup遍历目录及其子目录

时间:2015-10-28 10:00:04

标签: inno-setup pascalscript

如何在Inno Setup Pascal脚本中遍历目录及其子目录?我在Inno Setup帮助文档中找不到任何方法和界面。

1 个答案:

答案 0 :(得分:2)

使用FindFirstFindNext支持功能。

procedure RecurseDirectory(Path: string);
var
  FindRec: TFindRec;
  FilePath: string;
begin
  if FindFirst(Path + '\*', FindRec) then
  begin
    try
      repeat
        if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
        begin
          FilePath := Path + '\' + FindRec.Name;
          if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
          begin
            Log(Format('File %s', [FilePath]));
          end
            else
          begin
            Log(Format('Directory %s', [FilePath]));
            RecurseDirectory(FilePath);
          end;
        end;
      until not FindNext(FindRec);
    finally
      FindClose(FindRec);
    end;
  end
    else
  begin
    Log(Format('Failed to list %s', [Path]));
  end;
end;

有关使用示例,请参阅: