2016-09-05 21 views
0

abbreviaの* .tar.gzファイルを作成したいと思います。私は以下のコードを使用していますが、空のフォルダはアーカイブに追加されません。 baseDirには空のフォルダと空でないフォルダが含まれています。abbrevia tarファイルに空のフォルダを追加する方法

私は

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; 
+0

実際には、TPABBREVIAを変更する必要があります。 –

+0

@WarrenP、私は 'Jedi'を使ってやったことがあります。それはあなたが言ったようにTPABBREVIAを使用するコードの変更を行う必要があります縫い目。 – sddk

答えて

0

TPabbreviaを使用して空のフォルダを含むアーカイブを作成できませんでした。私はJediでアーカイブを作成しており、でJediがtarアーカイブを正しく抽出できないため、TPabbreviaで抽出しています。

パラメータ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; 
関連する問題