Inno Setup Перейдите в каталог и его подкаталоги
Как пройти каталог и его подкаталоги в сценариях Inno Setup Pascal? Я не могу найти какой-либо метод и интерфейс в документе справки Inno Setup.
1 ответ
Решение
Использование FindFirst
а также FindNext
вспомогательные функции.
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;
Примеры использования смотрите: