Inno Setup:列出目录中的所有文件名

时间:2013-11-06 09:19:52

标签: inno-setup pascalscript

我试图列出目录中包含名称的所有文件,但无法执行。有没有办法列出目录中名称的所有文件?

提前致谢。

1 个答案:

答案 0 :(得分:12)

以下脚本显示如何将指定目录的所有文件列入TStrings集合(在此示例中,在自定义页面的列表框中列出):

[Code]
procedure ListFiles(const Directory: string; Files: TStrings);
var
  FindRec: TFindRec;
begin
  Files.Clear;
  if FindFirst(ExpandConstant(Directory + '*'), FindRec) then
  try
    repeat
      if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
        Files.Add(FindRec.Name);
    until
      not FindNext(FindRec);
  finally
    FindClose(FindRec);
  end;
end;

procedure InitializeWizard;
var
  CustomPage: TWizardPage;
  FileListBox: TNewListBox;
begin
  CustomPage := CreateCustomPage(wpWelcome, 'Caption', 'Description');
  FileListBox := TNewListBox.Create(WizardForm);
  FileListBox.Parent := CustomPage.Surface;
  FileListBox.Align := alClient;

  ListFiles('C:\SomeDirectory\', FileListBox.Items);
end;