Как добавить пустую папку в 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;
Другие вопросы по тегам