Программы, плагины, статьи от Моторокера

Новости
Статьи
Программы
Ссылки
Автор

Рекомендации по написанию архиваторных плагинов для Total Commander

tHeaderData – структура для заголовка

tHeaderData – структура, которая используется в ReaderHeader.

typedef struct {
    char ArcName[260];
    char FileName[260];
    int Flags;
    int PackSize;
    int UnpSize;
    int HostOS;
    int FileCRC;
    int FileTime;
    int UnpVer;
    int Method;
    int FileAttr;
    char* CmtBuf;
    int CmtBufSize;
    int CmtSize;
    int CmtState;
 } tHeaderData;
THeaderData=packed record
    ArcName: array[0..259] of char;
    FileName: array[0..259] of char;
    Flags,
    PackSize,
    UnpSize,
    HostOS,
    FileCRC,
    FileTime,
    UnpVer,
    Method,
    FileAttr: longint;
    CmtBuf: PChar;
    CmtBufSize,
    CmtSize,
    CmtState: longint;
  end;

Описание

ArcName, FileName, PackSize, UnpSize содержат соответственно имя файла архива, имя файла в архиве, размер упакованного файла и размер распакованного файла.

HostOS добавлен только для совместимости с unrar.dll, должен быть присвоен ноль.

FileCRC – это 32-битная контрольная сумма файла CRC (cyclic redundancy check). Если не поддерживается, присвойте ноль.

Значения Cmt* могут быть использованы для передачи комментария к файлу. Пока не используются в Total Commander, поэтому можете присвоить ноль.

FileAttr можно присвоить любую комбинацию следующих значений:

ЗначениеОписание
0x1Файл только для чтения
0x2Скрытый файл
0x4Системный файл
0x8Метка тома Volume ID file
0x10Каталог
0x20Архивный файл
0x3FЛюбой файл

FileTime содержит дату и время последнего изменения файла. Используйте следующий алгоритм, чтобы присвоить значение:

FileTime = (year - 1980) << 25 | month << 21 | day << 16 | hour << 11 | minute << 5 | second/2;

FileTime:= (year - 1980) shl 25 | month shl 21 | day shl 16 | hour shl 11 | minute shl 5 | second div 2;

Убедитесь, что:

year – год является числом из четырёх цифр со значением между 1980 и 2100

month – месяц является числом со значением между 1 и 12

hour часы в 24-часовом формате


© 2006–2011 Моторокер Плагины для Total Commander