我有一个tar文件,我想用libarchive解压到一个特定的目录。我怎样才能让libarchive extract进入我想要的任何目录?目前它总是提取到我的程序的工作目录。我查看了this answer,但所有这些都改变了归档文件中归档项的位置,即它仍然在我的程序的工作目录中提取了不同的子目录。libarchive - 解压到指定的目录
7
A
回答
6
从libarchive讨论区:
“这取决于,当然,对所提取的存档
通常情况下,你会CHDIR()到您想要的输出去的目录,然后。使用类似于代码在Wiki实例页面:
或在untar.c示例程序:
当然,如果你提取tar文件具有 有趣的文件名(如“C:\ someotherdirectory”), 那么你就需要为你提取与文件名玩。
请注意,这些示例全部使用archive_read_next_header() 从输入存档中获取描述 下一个条目的条目对象;然后您可以以任何您希望的方式自由编辑条目描述 - 尤其是,您可以在致电 archive_write_header()重新创建 磁盘上的条目之前更改 名称,所有者或权限。
以上在Wiki的例子页面可能开始 最好的地方“
12
我解决了这个问题,接下来方式:
const char* currentFile = archive_entry_pathname(archiveEntry);
const std::string fullOutputPath = destination + currentFile;
archive_entry_set_pathname(archiveEntry, fullOutputPath.c_str());
(叫‘archive_write_header’功能之前插入此代码)
其中destination
是输出路径 它的工作原理
相关问题
- 1. 解压gzip文件到指定的目录
- 2. 文件解压.rar程序到指定目录中的PHP
- 3. 解压目录
- 4. 解压目录到元组的中间
- 5. 使用Perl重定向解压输出到特定的目录
- 6. 如何解压目录到python2.x
- 7. Unix将文件解压缩到目录
- 8. 从一个目录解压缩到个人目录的环路
- 9. 如何将目录解压到rails应用程序的特定目录
- 10. 仅解压目录结构
- 11. 使用iOS-libarchive库解压缩.tar文件
- 12. 如何在指定的目录Linux/Windows中提取/解压缩/解压缩hudson.war,而不是默认的?
- 13. 将压缩包解压缩到同一个目录中
- 14. 将ASP.NET MapPath解压到解决方案的根目录
- 15. 在nsis(压缩安装)中指定目标目录
- 16. 的Perl与子目录解压缩
- 17. 解压目录中的所有文件
- 18. 将jar提取到指定的目录
- 19. 将* .tgz文件下载并解压缩到Documents目录的子目录中
- 20. 使用libarchive重命名档案中的非空目录
- 21. 指定类目录
- 22. 7Z压缩和解目录相对
- 23. Android解压缩不是目录问题
- 24. 解压缩时删除一个目录
- 25. 列表.zip目录没有解压
- 26. 从目录中解压一个文件
- 27. 解压缩.gz文件作为目录
- 28. 将zip文件解压缩到文件夹的根目录?
- 29. 如何解压到bash中的相同目录
- 30. GZipStream解压文件到一个单独的目录
我只能通过将我的程序的工作目录更改为我想要的导演y,使用libarchive完成解压缩工作,然后将其更改回来。这很脏 – oggmonster