I have just found some free ActiveX.dll from Xstandard that can be used in Xojo for pack/unpack (XTar.dll) compress/uncompress (XGZip.dll). The components features are very limited, You will self need to write the code for not overwrite and adding the same file twice into the tar archived/compressed file
Xstandard provide also an ActiveX DLL for Zip. But this you will need to provide your email address for download it. (http://www.xstandard.com/en/documentation/xzip/)
How to install the two DLLs XGZip.dll and XTar.dll see:
http://www.xstandard.com/en/documentation/xtar/
http://www.xstandard.com/en/documentation/xgzip/
Attached a very simple example for Pack and compress files:
// This example will create a Tar file and compress the file with gzip
// If you run this code twice, it will add another two image files into the tar archive.
// For more info how to unpack/uncompress the files see:
// http://www.xstandard.com/en/documentation/xtar/
// http://www.xstandard.com/en/documentation/xgzip/
//http://www.xstandard.com/en/documentation/xzip/
Dim objTAR, objGZip As OLEObject
objTAR = New OLEObject("XStandard.TAR")
objGZip = New OLEObject("XStandard.GZip")
// Add demo-image1.jpg to images.tar
objTAR.Pack("C:\\Temp\\pictures\\demo-image1.jpg", "C:\\Temp\\images.tar") // objTAR.Pack(sPath As String, sArchive As String)
// Add another file to images.tar
objTAR.Pack("C:\\Temp\\pictures\ebula.jpg", "C:\\Temp\\images.tar")
// Add Picture_Folder_2 to images.tar
objTAR.Pack("C:\\Temp\\pictures\\Picture_Folder_2", "C:\\Temp\\images.tar")
// Compress Images.tar
objGZip.Compress ("C:\\Temp\\images.tar", "C:\\Temp\\images.tar.gz")
objTAR = Nil
objGZip = Nil
exception err as oleexception
msgbox err.message