Tôi có một tệp tar tôi muốn trích xuất bằng libarchive vào một thư mục cụ thể. Làm thế nào tôi có thể làm cho chiết xuất libarchive vào bất kỳ thư mục tôi muốn? Tại thời điểm này, luôn luôn trích xuất vào thư mục làm việc của chương trình của tôi. Tôi nhìn vào this answer nhưng tất cả điều này làm là thay đổi vị trí của một mục lưu trữ trong kho lưu trữ, nghĩa là nó vẫn trích xuất vào thư mục làm việc của chương trình của tôi chỉ ở một thư mục con khác.libarchive - Trích xuất vào thư mục được chỉ định
Trả lời
Từ diễn đàn thảo luận libarchive:
"Nó phụ thuộc, tất nhiên, trên các kho lưu trữ được chiết xuất
Thông thường, bạn sẽ chdir() vào thư mục nơi bạn muốn đầu ra để đi, sau đó. sử dụng mã tương tự như trong các trang Wiki Ví dụ:
hoặc trong chương trình mẫu untar.c:
Tất nhiên, nếu file tar bạn giải nén có tên tập tin thú vị (chẳng hạn như "c: \ someotherdirectory"), sau đó bạn sẽ cần phải chơi với các tên tập tin như bạn giải nén.
Lưu ý rằng tất cả các ví dụ đều sử dụng archive_read_next_header() để lấy đối tượng mục nhập từ lưu trữ đầu vào mô tả mục nhập tiếp theo; sau đó bạn được tự do chỉnh sửa mô tả mục nhập theo bất kỳ cách nào bạn muốn - cụ thể là bạn có thể thay đổi tên, chủ sở hữu hoặc quyền của - trước khi gọi archive_write_header() để tạo lại mục nhập trên đĩa.
Trang Ví dụ trong Wiki trên có lẽ là nơi tốt nhất để bắt đầu "
tôi giải quyết vấn đề này cách tiếp theo:. (chèn mã này trước khi gọi 'archive_write_header' chức năng)
const char* currentFile = archive_entry_pathname(archiveEntry);
const std::string fullOutputPath = destination + currentFile;
archive_entry_set_pathname(archiveEntry, fullOutputPath.c_str());
nơi destination
là đường dẫn đầu ra Và nó hoạt động
- 1. Trích xuất jar vào thư mục được chỉ định
- 2. Trích xuất chỉ một thư mục duy nhất từ tar
- 3. cách xuất tệp riêng lẻ vào một thư mục được chỉ định cho cljsbuild
- 4. Trích xuất nội dung tệp zip vào thư mục cụ thể trong Python 2.7
- 5. MATLAB: trích xuất submatrix với chỉ mục logic
- 6. SVN Xuất Thư mục tập tin Chỉ
- 7. Trích xuất tất cả các tệp có đường dẫn thư mục trong thư mục đã cho
- 8. Eclipse: Chỉ định nhiều thư mục res như chỉ định nhiều thư mục src
- 9. Java: Tìm tệp .txt trong thư mục được chỉ định
- 10. Tạo một tệp trong một thư mục được chỉ định
- 11. Python: Trích xuất bằng tarfile nhưng bỏ qua các thư mục
- 12. Trong C, làm cách nào để truy cập vào một thư mục được chỉ định?
- 13. Kịch bản để lưu số liệu MATLAB vào một thư mục được chỉ định
- 14. Maven Assembly - chỉ sao chép tập tin từ thư mục con khi trích xuất từ kho lưu trữ
- 15. Cách chỉ định thư mục cho NDK_MODULE_PATH
- 16. Git kéo và chỉ định thư mục?
- 17. Grep trích xuất chỉ toàn bộ từ
- 18. Làm cách nào để trích xuất một tệp từ tar sang một thư mục khác?
- 19. Tự động trích xuất đường dẫn -Tôi gcc cho mã nguồn lập chỉ mục trong Emacs
- 20. Trích xuất luồng Python
- 21. Làm thế nào để trích xuất khung hình bằng cách sử dụng mencoder vào thư mục cụ thể?
- 22. Python - Trích xuất đường dẫn thư mục từ đường dẫn tập tin
- 23. Làm thế nào để trích xuất một tập tin từ một rpm vào thư mục hiện hành?
- 24. Chỉ xuất các tệp đã sửa đổi và được thêm vào với cấu trúc thư mục trong Git
- 25. Trích xuất tên thư mục con từ URL trong ASP.NET C#
- 26. Cách truy xuất/tính số lượng trích dẫn và/hoặc chỉ mục trích dẫn từ danh sách tác giả?
- 27. Trích xuất một phần của filepath (một thư mục) trong Python
- 28. Thư mục đầu ra có thể được chỉ định thông qua dòng lệnh không?
- 29. Tôi nên trích xuất các thư mục nén trong java như thế nào?
- 30. Chỉ định thư mục cài đặt đá quý
Cách duy nhất tôi có thể lấy nó để trích xuất nơi tôi muốn là bằng cách thay đổi thư mục làm việc của chương trình của tôi thành giám đốc mong muốn của tôi y, làm công việc giải nén với libarchive, và sau đó thay đổi nó trở lại. Đây là bẩn mặc dù – oggmonster