|
|||
Скачать SWArcher - Чтение оглавлений архивных файлов
Виктор Вагнер SWArcher это библиотека для Turbo Pascal 6.0 и выше, позволяющая читать оглавления архивов наиболее распространенных форматов. В настоящее время поддерживаются форматы:
Все виды архивов распознаются не по расширению, а по формату. 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 | |||
© 2009–2024 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг |