Anybody can help show examples of using libarchive
to extract ZIP files to a specified folder? It looks like the sample programs provided (untar.c
, tarfilter.c
and minitar
) all extracts the archive to the current working directory. Is there a way to say "extract to this folder and below" to libarchive
and not clobber the program's active folder?
One of the main drivers is that the extraction code will be run in a background thread, and thus changing the program working directory may create problems. Also this will be used in an iOS application (iPhone, iPad), which is picky on what folders that the application can write to.
Thanks in advance.
You can rewrite each archive_entry's pathname before calling archive_read_extract. For example:
const char* path = archive_entry_pathname( entry );
char newPath[PATH_MAX + 1];
snprintf( newPath, PATH_MAX, "/SomeOtherDirectory/%s", path );
archive_entry_set_pathname( entry, newPath );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With