Как добавить пустую папку в tar-файл abbrevia
Я хочу создать файл *.tar.gz с аббревиатурой, я использую приведенный ниже код, но пустые папки не добавляются в архив. baseDir
содержит пустые и не пустые папки.
я нашел ошибки, которые исправили пустые папки
https://sourceforge.net/p/tpabbrevia/bugs/108/
https://sourceforge.net/p/tpabbrevia/bugs/8/
Как я могу добавить эти пустые папки в архив?
Zip := TAbZipper.Create(nil);
try
Zip.BaseDirectory := baseDir;
Zip.StoreOptions := [soRecurse];
Zip.Filename := targetFile;
Zip.FArchive.StoreOptions := [soRecurse];
Zip.AddFiles('*', faDirectory + faAnyFile);
Zip.CloseArchive;
finally
Zip.Free;
end;
1 ответ
Решение
Мне не удалось создать архив с пустой папкой с помощью TPabbrevia
, я создаю архив с Jedi
и извлечь его с TPabbrevia
так как Jedi
не работает распаковать архив tar Windows 10
должным образом.
Параметр archiveFileName должен содержать расширение файла.tar.
function createArchiveFromDirectory(archiveFileName, directory:String):Boolean;
var
AFormat: TJclCompressArchiveClass;
Arc: TJclCompressArchive;
Code: Integer;
str:string;
begin
Result := True;
try
AFormat := GetArchiveFormats.FindCompressFormat(archiveFileName);
if ( AFormat <> nil ) then
Begin
FArchive := AFormat.Create(ArchiveFileName, 0, False);
str := ExtractFileName(Directory);
(FArchive as TJclCompressArchive).AddDirectory(str, Directory, True, True);
(FArchive as TJclCompressArchive).Compress;
End;
except
// exception handling
end;
FreeAndNil(FArchive);
end;