我有一個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