SWArcher
Softweyr archiver interface
version 1.00 beta
Copyright (c) 1995 by SoftWeyr
Введение
SWArcher это библиотека для Turbo Pascal 6.0 и выше, позволяющая
читать оглавления архивов наиболее распространенных форматов.
В настоящее время поддерживаются форматы:
PKZIP - Ver 2.04g и ранее
ARJ - Ver 2.41 и ранее
BSA - Ver 1.95
ZOO
RAR - Ver 1.50, но не 1.30
PKARC
LHA/LHICE/LHARC - все известные мне версии
Все виды архивов распознаются не по расширению, а по формату.
SFX архивы распознаются для всех кроме ZOO, который их и не создает.
При разработке использованы исходные тексты
пакета OOAV, разработанного Edwin Groothuis, MavEtJu software.
КАК ЭТО РАБОТАЕТ:
1. Вы должны открыть файл с помощью процедуры OpenArchive
function OpenArchive( Name:string):PArchive;
Которая возвращает указатель на объект типа TArchive или nil, если файл
не существует, не читается или не относится к одному из распознаваемых
типов.
2. Вы должны вызывать метод FindNext полученного объекта до тех пор,
пока он не вернет False.
Function TArchive.FindNext(var sr:TArcRec):boolean;
В качестве параметра сей функции передается запись типа
TArcRec=Record
Name:PathStr;
Attr:Word;
Time:LongInt;
Size:LongInt;
PackedSize:LongInt;
end;
Где Name - полный путь (если архив с подкаталогами),
Attr - атрибуты файла. Time - время создания в том же формате,
что и в GetFTime, Size- размер неупакованного файла и
PackedSize - соответственно.
Файлы возвращаются в порядке их расположения в архиве.
Если вам хочется иметь нечто, что работает с неупакованной структурой
каталогов так же, то есть объект TDosDir=object(TArchive).
Если у вас архив не в файле, а в EMS или RAM и доступен как обьект -
наследник от TStream, то вы можете создать объект для его чтения явыным
образом, передав указатель на поток его конструктору. В этом случае вам
придется явно указать архив какого типа вы собираетесть читать, написав
что-то вроде:
MyArchive:=New(PZIPArchive,Init(MyStream))
В качестве демонстрационного примера к пакету прилагается программка
FileList.PAS создающая список файлов на дискетах - что-то вроде борлан-
довских FILELIST.DOC
Sapienti sat. Если вам нужно больше информации - читайте исходники
Vitus Wagner
E-Mail:vitus@agropc.msk.su
FIDO:2:5020/358.5
|