Pascal Scripting: ExtractTemporaryFile

Прототип

procedure ExtractTemporaryFile(const FileName: String);

Описание

Извлекает указанный файл FileName из секции [Files] во временный каталог. Для определения расположения временного каталога используйте ExpandConstant('{tmp}').

При закрытии программы установки все извлечённые файлы автоматически удаляются.

Если файл не извлечён, не найден или найден, но не был обработан из-за наличия параметров MinVersion и/или OnlyBelowVersion, будет вызвано исключение.

Комментарии

Используйте Flags: dontcopy в секции [Files], чтобы указать программе установки пропустить данный файл на этапе копирования файлов.

Используйте Flags: noencryption в секции [Files], если включено шифрование и вызов функции ExtractTemporaryFile выполняется прежде, чем пользователь введёт правильный пароль.

Если включено непрерывное (solid) сжатие, обязательно перечислите все временные файлы в самом начале секции [Files]. Причиной этого является то, что для получения доступа к произвольному файлу в архиве с непрерывным сжатием, программа установки должна сначала распаковать все предыдущие файлы (во временный буфер в памяти). Это может привести к значительной задержке в работе инсталлятора, если в секции [Files] перед временно используемыми файлами находится множество других файлов.

Пример

[Files]
Source: "Readme.txt"; Flags: dontcopy noencryption

[Code]
function InitializeSetup: Boolean;
var
  S: AnsiString;
begin
  // Показываем содержимое Readme.txt (не Unicode) в сообщении
  ExtractTemporaryFile('Readme.txt');
  if LoadStringFromFile(ExpandConstant('{tmp}\Readme.txt'), S) then
  begin
    MsgBox(S, mbInformation, MB_OK);
  end;

  Result := True;
end;

См. также:

ExtractTemporaryFiles
DownloadTemporaryFile