Mam plik tar, który chcę wyodrębnić z libarchive do określonego katalogu. W jaki sposób mogę utworzyć libarchive extract w dowolnym katalogu, który chcę? W tej chwili zawsze wyodrębnia się do katalogu roboczego mojego programu. Spojrzałem na this answer, ale wszystko to zmienia lokalizację wpisu archiwum w archiwum, tzn. Nadal wyodrębnia się do katalogu roboczego mojego programu właśnie w innym podkatalogu.libarchive - Wyodrębnij do określonego katalogu
Odpowiedz
Z libarchive dyskusyjnych:
„To zależy, oczywiście, na archiwum wyodrębniania
Zazwyczaj byś chdir() do katalogu, w którym chcesz wyjście iść, wtedy. użyć kodu podobnego do tego na stronie przykładów Wiki:
lub w untar.c przykładowy program:
Oczywiście, jeśli plik tar jesteś wydobycia ma ciekawe nazwy plików (takich jak „c: \ someotherdirectory”), to musisz grać z nazwami jak wyodrębnić.
Zwróć uwagę, że wszystkie przykłady używają archive_read_next_header() , aby uzyskać obiekt wejścia z archiwum wejściowego opisujący następny wpis w postaci ; możesz dowolnie edytować opis wpisu w dowolnej formie - w szczególności możesz zmienić nazwę, właściciela lub uprawnienia - przed wywołaniem archive_write_header(), aby odtworzyć wpis na dysku .
Strona Przykłady w Wiki powyżej jest prawdopodobnie najlepszym miejscem zacząć „
I Rozwiązaliśmy ten problem następny sposób:. (wpisać ten kod przed wywołaniem funkcji«archive_write_header»)
const char* currentFile = archive_entry_pathname(archiveEntry);
const std::string fullOutputPath = destination + currentFile;
archive_entry_set_pathname(archiveEntry, fullOutputPath.c_str());
gdzie ścieżka wyjściowa to destination
. I działa.
- 1. Zainstaluj nagłówki Boost do określonego katalogu (Windows)
- 2. Dekompresuje plik gzip do określonego katalogu
- 3. Skrypt do zapisywania figur matlab do określonego katalogu
- 4. Sprawdź całkowity rozmiar pliku określonego katalogu dla określonego użytkownika.
- 5. Eslint ignoruje konkretną regułę dla określonego katalogu
- 6. sposób wysyłania pojedynczych plików do określonego katalogu dla cljsbuild
- 7. Android: dostęp do rysowania z określonego katalogu -dpi?
- 8. Wyodrębnianie zawartości pliku ZIP do określonego katalogu w Pythonie 2.7
- 9. Przenoszenie plików do katalogu
- 10. Wyodrębnij element bez atrybutu klasy
- 11. Wyodrębnij pliki zawarte w archive.tar.gz do nowego katalogu o nazwie archiwum
- 12. instrukcje dla gcc/clang do wyprowadzania plików tymczasowych do określonego katalogu
- 13. dodawanie katalogu do sys.path/PYTHONPATH
- 14. Pomost: rozpakuj plik .war do określonego folderu
- 15. Jak wykonać polecenie z określonego katalogu bez faktycznej zmiany w tym katalogu?
- 16. Wyodrębnij plik zip do lokalnego folderu
- 17. Wyodrębnij wartości z tablicy do Tuple
- 18. Przepisywanie do katalogu w katalogu głównym
- 19. Wyodrębnij subgraph w neo4j
- 20. Wyodrębnij URL ze stringa
- 21. Czy istnieje prosty sposób na skopiowanie wszystkich zależności słoików do określonego katalogu w XSBT 0.11.2?
- 22. Rekursywne przenoszenie wszystkich plików określonego typu do katalogu docelowego w Bash
- 23. Wyodrębnij plik ZIP programowo z biblioteki DotNetZip?
- 24. Wysyłaj dane do określonego wątku
- 25. jQuery dołącz div do określonego
- 26. Dodawanie dni do określonego dnia
- 27. Umożliwianie dostępu do określonego użytkownika
- 28. trasa trasy do określonego identyfikatora
- 29. Dołącz do określonego wątku doładowania
- 30. Wyodrębnij emotikony z tekstu
Jedyny sposób, w jaki mogę go wydobyć tam, gdzie chcę, zmieniając katalog roboczy mojego programu na żądanego dyrektora y, wykonując ekstrakt z libarchive, a następnie zmieniając go z powrotem. To jest brudne – oggmonster