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.
untar.c
can be easily modified to do this by prepending the path you want to use to the pathname that is passed tocreate_dir()
andcreate_file()
fromuntar()
.Note that
untar.c
is a standalone decompressor, seperate from libarchive.The same effect is easily achievable with libarchive - it gives you full control over the creation of files and directories when unarchiving.
You can rewrite each archive_entry's pathname before calling archive_read_extract. For example: