|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Распаковка определённых папок файлов из 7z (JEDI)
Есть функция - распаковывает полностью архив, а нужно что бы только опредёлённые папки и файлы:
Код:
function Decompress(FileName, DestDir: String): Boolean; var ArcClass: TJclDecompressArchiveClass; MyArc: TJclDecompressArchive; //WideString - Имена файлов begin Decompress:= False; // Filename = name.7z или name.zip // DestDir = полный путь к существующему каталогу //ArcClass:= GetArchiveFormats.FindDecompressFormat(FileName); ArcClass:= GetArchiveFormats.FindDecompressFormat(lowercase(FileName)); Application.ProcessMessages; Try if Assigned(ArcClass) then Begin MyArc:= ArcClass.Create(FileName); if (MyArc is TJclSevenZipDecompressArchive) then Begin try MyArc.ListFiles; { Сбой, не делая это первым } { ExtractAll (AutocreateSubDir) должен быть установлен верно } MyArc.ExtractAll(DestDir, True); //ExtractSelected(DestDir, True); !!! Полагаю надо это использовать, но как? Decompress:= True; except on E: EJclCompressionError do Begin ShowMessage(e.Message); End; end; End Else ShowMessage('Не поддерживаемая 7z.dll'); End; Finally MyArc.Free; End; end; Помогите, кто шарит в JclCompression... Всё намного проще, чем есть на самом деле... |