Есть функция - распаковывает полностью архив, а нужно что бы только опредёлённые папки и файлы:
Код:
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...