Tengo un archivo tar que quiero extraer con libarchive a un directorio específico. ¿Cómo puedo hacer que libarchive extracto en cualquier directorio que quiero? Por el momento siempre se extrae en el directorio de trabajo de mi programa. Miré en this answer pero todo lo que hace es cambiar la ubicación de una entrada de archivo dentro del archivo, es decir, todavía se extrae en el directorio de trabajo de mi programa solo en un subdirectorio diferente.libarchive - Extracto del directorio especificado
Respuesta
Desde los foros de discusión libarchive:
"Depende, por supuesto, en el archivo que se extrae
Normalmente, se chdir() para el directorio en el que desea que la salida vaya, entonces. utilizar código similar a la de la página Ejemplos wiki:
o en el programa de ejemplo untar.c:
Por supuesto, si el archivo tar que está extrayendo tiene nombres de archivos interesantes (por ejemplo, "c: \ someotherdirectory"), entonces tendrá que jugar con los nombres de archivo como a extraer.
Tenga en cuenta que todos los ejemplos usan archive_read_next_header() para obtener un objeto de entrada del archivo de entrada que describe la siguiente entrada; puede editar la descripción de la entrada de la manera que desee, en particular, puede cambiar el nombre , el propietario o los permisos antes de llamar al archive_write_header() para volver a crear la entrada en el disco .
La página de ejemplos en el Wiki anterior es probablemente la mejor lugar para empezar "
resolví este problema siguiente manera:. (inserte el código antes de llamar a la función 'archive_write_header')
const char* currentFile = archive_entry_pathname(archiveEntry);
const std::string fullOutputPath = destination + currentFile;
archive_entry_set_pathname(archiveEntry, fullOutputPath.c_str());
donde es la ruta de salida Y funciona
- 1. Extracto del blog en Django
- 2. Rectángulo Extracto del Contorno OpenCV
- 3. Cómo llamar cmd.exe de PowerShell con un espacio en el nombre del directorio especificado del Comando
- 4. Extracto de fórmula del modelo en R
- 5. Extracto decimal del comienzo de la cadena
- 6. Vinculando estáticamente a libarchive en Windows con MinGW
- 7. Python: Extracto utilizando archivo tar pero ignorando directorios
- 8. git ignorar el directorio especificado a excepción de
- 9. XCOPY ¿cambiar para crear el directorio especificado si no existe?
- 10. ¿Extracto TOC de PDF?
- 11. día extracto de Fecha
- 12. EXC_BAD_ACCESS en sqlite_step (extracto)
- 13. Extracto Palabras Url
- 14. Extracto del código de Singleton, una pregunta de la entrevista
- 15. extracto de mysql año a partir del formato de fecha
- 16. extracto de la ruta del lienzo html de texto
- 17. Eliminación del formato de marcado para el extracto rápido
- 18. Método de extracto con continue
- 19. Ruta del directorio local
- 20. Copia recursiva del directorio
- 21. ¿Salir del directorio .....?
- 22. Extracto URL de la cadena
- 23. Extracto PHP Datos GPS EXIF
- 24. Extracto de artículos de computación
- 25. nomArchivo extracto usando expresiones regulares
- 26. Prevención del cambio automático del directorio predeterminado
- 27. Configuración del directorio del almacén de sqlite
- 28. Supervisión del tamaño del directorio de Windows
- 29. Cambio del Sur migración del directorio de
- 30. coeficientes de extracto de GLM en R
La única manera en que puedo hacer que extraiga donde quiero es cambiando el directorio de trabajo de mi programa a mi director deseado y, haciendo el trabajo de extracción con libarchive, y luego cambiándolo de nuevo. Esto es sucio – oggmonster