adi*_*dib 4 c compression iphone zip extraction
有人可以帮助显示使用libarchive
提取ZIP文件到指定文件夹的示例吗?看起来提供的示例程序(untar.c
,tarfilter.c
和minitar
)都将存档提取到当前工作目录.有没有办法说"提取到这个文件夹及以下",libarchive
而不是破坏程序的活动文件夹?
其中一个主要驱动因素是提取代码将在后台线程中运行,因此更改程序工作目录可能会产生问题.此外,它还将用于iOS应用程序(iPhone,iPad),这对应用程序可以写入的文件夹非常挑剔.
提前致谢.
在调用archive_read_extract之前,您可以重写每个archive_entry的路径名.例如:
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 );
Run Code Online (Sandbox Code Playgroud)
untar.c
通过将要使用的路径添加到传入create_dir()
和create_file()
传出的路径名前面,可以轻松修改以实现此目的untar()
。
请注意,这untar.c
是一个独立的解压缩器,与 libarchive 分开。
使用 libarchive 可以轻松实现相同的效果 - 它使您可以在解档时完全控制文件和目录的创建。
归档时间: |
|
查看次数: |
2673 次 |
最近记录: |