File.GetCRC

number File.GetCRC ( string Filename )
Примеры

Описание

Возвращает значение CRC для указанного файла.

Параметры

Filename

(строка) Полный путь к файлу.

Возврат

ResultVariable

(число) Числовое значение CRC для данного файла. Если это действие проходит неудачно, возвращается -1. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

CRC_check = File.GetCRC(_TempFolder .. "\\setup.exe");
Получаем CRC значение файла "setup.exe", размещенного в папке пользователя Temp, и сохраняем его в переменной по имени "CRC_check".

Примечание: _TempFolder это встроенная переменная, которая содержит путь к папке "Temp" в системе пользователя.

Пример 2

-- Check to see if the user is connected to the internet
-- Проверяем, есть ли у пользователя соединение с Интернетом
connected = HTTP.TestConnection("http://www.indigorose.com", 20, 80, nil, nil);

-- If they are connected.
-- Если соединение есть.
if connected then
    -- Download a file to their temporary directory.
    -- Загружаем файл во временную папку пользователя.
    StatusDlg.Show(MB_ICONNONE, false);
    HTTP.Download("http://www.indigorose.com/setup.exe", _TempFolder .. "\\setup.exe", MODE_BINARY, 20, 80, nil, nil, nil);

    -- Get any error codes that may have been returned by the download action.
    -- Получаем какие-либо коды ошибки, что могут быть возвращены действием загрузки.
    error = Application.GetLastError();
    StatusDlg.Hide();

    -- If there was an error during the download, display the error message.
    -- Если во время загрузки была ошибка, показываем сообщение об ошибке.
    if error ~= 0 then
        result = Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);

    -- If there was no error during the download.
    -- Если во время загрузки ошибки не было.
    else
        -- Get the CRC value of the downloaded file.
        -- Получаем значение CRC загруженного файла.
        crc_value = File.GetCRC(_TempFolder .. "\\setup.exe");
        -- Check to see if the CRC value matches it's expected value.
        -- Проверяем совпадает ли значение CRC с его предполагаемым значением.
        if crc_value == 824907888 then

            -- Run the executable that was downloaded.
            -- Запускаем исполняемый файл, что был загружен.
            File.Run(_TempFolder .. "\\setup.exe", "", "", SW_SHOWNORMAL, true);

        -- The CRC value does not match. Display an error message to the user.
        -- Значение CRC не совпадает. Показываем пользователю сообщение об ошибке.
        else
            result = Dialog.Message("Error", "The downloaded file is incomplete. Please try downloading again.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
        end
    end

-- Display a notice informing them that they are not connected.
-- Показываем уведомление, информирующее о том, что соединения нет.
else
    Dialog.Message("Internet Error", "You are not connected to the internet. Please connect to download.");
end
В этом примере сначала проверяется есть ли у пользователя соединение с Интернетом. Если оно имеется, загружаем файл во временную директорию пользователя. Затем этот файл проверяется, что он цел и не поврежден перед его запуском. Эта проверка файла осуществляется с помощью действия File.GetCRC. Последовательность проверок, выполняемая в этом скрипте, для обработки любых возникающих ошибок и если любое из действий оканчивается неудачей, пользователю показываются уведомительные сообщения.

Примечание: _TempFolder это встроенная переменная, которая содержит путь к папке "Temp" в системе пользователя.
Смотрите также: Связанные действия