File.Install

boolean File.Install ( string Filename,
string Destination,
number Overwrite = 0,
boolean CreateBackup = false,
boolean SharedSystem = false,
function ProgressCallbackFunction = nil,
function OverwriteCallbackFunction = nil )
Примеры

Описание

Устанавливает файл на систему пользователя.

Примечание: Это тоже самое копирование файла, но с несколько большими возможностями.

Параметры

Filename

(строка) Путь к файлу, который нужно установить.

Destination

(строка) Полный путь и имя файла назначения, куда требуется установка.

Overwrite

(число) Переписывать ли файл в папке назначения, если там уже имеется файл с точно таким же именем, как и устанавливаемый:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
FILE_INSTALL_SAMEOLDER0Переписывать только если существующий файл старше чем устанавливаемый или оба файла одного возраста. (По умолчанию)
FILE_INSTALL_OLDER1Переписывать только если существующий файл старше чем устанавливаемый.
FILE_INSTALL_ALWAYS2Всегда устанавливать файл, даже если существующий файл новее.
FILE_INSTALL_NEVER3Никогда не устанавливать файл, даже если существующий файл старше.
FILE_INSTALL_ASK4Спросить пользователя, переписывать ли существующий файл.
FILE_INSTALL_CALLBACK6Вызвать OverwriteCallbackFunction для управления перезаписью файла специальным способом.

Предупреждение: В большинстве случаев не очень хорошая мысль выбрать FILE_INSTALL_ALWAYS, если только есть уверенность что это то, что нужно делать. Также не выбирайте FILE_INSTALL_ASK если нет уверенности, что пользователь будет иметь достаточно знаний для принятия такого решения. FILE_INSTALL_SAMEOLDER это обычно самый безопасный выбор.

CreateBackup

(логический) Создавать ли резервную копию существующего файла (если он имеется) в процессе установки:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueЛюбой существующий файл будет переименован в filename.bak. Если filename.bak уже существует, взамен файл будет переименован в filename.bk1 или filename.bk2, или filename.bk3, и т.п. Новый файл будет устанавливаться только после того, как существующий будет иметь резервную копию.
falseНе делать резервную копию существующего файла. (По умолчанию)

SharedSystem

(логический) Указывать ли является файл системным файлом, который может быть в общем пользовании несколькими программами:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueСохранять счетчик использования файла в течении установки и удаления, чтобы обеспечить его сохранность, пока он еще нужен.
falseФайл не будет использоваться совместно, так что не нужно хранить счетчик использования. (По умолчанию)

ProgressCallbackFunction

(функция) Имя функции, которая будет вызываться всякий раз когда происходит процесс установки. (Эту возвращающуюся функцию можно использовать для отображения хода выполнения операции установки, своим собственным способом.)

Примечание: Если в ProgressCallbackFunction установлено значение nil, тогда информация о протекании процесса будет отправлена во встроенное диалоговое окно состояния, предполагая что оно в настоящий момент видимое. (Можно показать или скрыть диалоговое окно состояния действиями StatusDlg.Show или StatusDlg.Hide соответственно.)

Возвращающаяся функция должна иметь возможность принять следующие параметры:

Source

(строка) Путь к источнику устанавливаемого файла.

Destination

(строка) Путь назначения для устанавливаемого файла.

Copied

(число) Количество байтов, установленных на настоящий момент.

Total

(число) Общее количество байтов, которое будет устанавливаться. Возвращающая функция должна возвращать логическое значение (истина (true) или ложь (false)), показывающее следует ли продолжать операцию установки:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПродолжать операцию установки.
falseОстановить операцию установки, как только это станет возможным.

OverwriteCallbackFunction

(функция) Имя функции, которая будет вызываться всякий раз, когда должно быть сделано решение о перезаписи. (Можно использовать эту возвращающуюся функцию для управления операцией перезаписи особым способом.)

Примечание: Если в OverwriteCallbackFunction установлено значение nil, тогда будет выполняться опция перезаписи FILE_INSTALL_SAMEOLDER.

Возвращающаяся функция должна иметь возможность принять следующие параметры:

Source

(строка) Путь к источнику устанавливаемого файла.

Destination

(строка) Путь назначения для устанавливаемого файла. Возвращающая функция должна возвращать логическое значение (истина (true) или ложь (false)), показывающее следует или нет переписывать файл:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПереписывать файл.
falseНе переписывать файл.

Возврат

ResultVariable

(логический) Истина (true), если файл был установлен или ложь (false), если этого не произошло или случилась ошибка. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.
Смотрите также: Связанные действия

Примеры

Пример 1

-- Install the file cooltoy.dll.
-- Устанавливаем файл cooltoy.dll.
success = File.Install("AutoPlay\\Docs\\cooltoy.dll", _SystemFolder .. "\\cooltoy.dll", FILE_INSTALL_ALWAYS, false, false, nil, nil);

-- Check to see if the install action was successful by getting an error code.
-- Проверяем, было ли действие установки успешным, получением кода ошибки.
error = Application.GetLastError();

-- If the install was not successful, display its error message.
-- Если установка не была успешной, показываем сообщение об ошибке.
if success == false then
    Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
end
Устанавливаем файл "AutoPlay\Docs\cooltoy.dll" в папку пользователя System, переписываем любой существующий файл cooltoy.dll, который там может быть. Сохраняем истину или ложь в переменной по имени "success" соответственно тому была или нет успешна установка файла. Если случилась неудача, в диалоговом окне показываем сообщение об ошибке.
Смотрите также: Связанные действия