Yevgeny Simkin
Yevgeny Simkin

Reputation: 28369

How does one unpack a tar file in Android?

I'm not overly familiar with tar, so, this may be a stupid question, but I have a situation where I want to grab a tarball from the server (preferably compressed, but that's not essential), download it on to the device and untar it.

I'm not seeing any standard library to do this... am I overlooking it, or does it not exist?

[EDIT] I'm attempting to do this in my app by means of some API or library that handles unpacking tars - I'm not looking for an app that un-tars stuff on my device.

Upvotes: 10

Views: 24243

Answers (3)

Codebling
Codebling

Reputation: 11382

Sorry for reviving an old question.

As of 6.0/Marshmallow, Android includes Toybox, an executable that contains small versions of every utility.

So on 6+ versions of Android, you can execute tar command as you would on a normal linux system.

As of Q1 2019, 6.0 and higher represent approximately 90% of Android users, so this is more or less safe to do unless you want full support, or are targeting a market with different Android adoption rates.

Upvotes: 3

Hardian
Hardian

Reputation: 2022

Noting down another option here,

Library Name : Apache Commons Compress Apache License, Version 2.0

The Apache Commons Compress library defines an API for working with ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4, Brotli, Zstandard, DEFLATE64 and Z files.

Example here: Java TAR example – compress and decompress *.tar or *.tar.gz files This demonstrates how to compress files or directories recursively in .tar or .tar.gz format and how to decompress a .tar or .tar.gz file

Upvotes: 2

FoamyGuy
FoamyGuy

Reputation: 46856

I don't know if there is support for it built into the OS. But you should be able to use a third party library to do it.

Here is one, I am sure there are others to choose from out there as well.

Upvotes: 4

Related Questions