Descripción general
Los archivos que constan de entradas tienen el método createEntries para comprimir la carpeta completa. Estos métodos respetan la estructura de directorios y componen de forma recurrente para todas las subcarpetas. También puede agregar una sola entrada de archivo a una subcarpeta arbitraria en cualquier lugar del archivo.Cómo comprimir una carpeta
Si desea crear un archivo ZIP a partir de una carpeta completa conservando la estructura, puede utilizar la API Aspose.Zip para Java y el siguiente código. La construcción try-with-resources cierra automáticamente el recurso de archivo después de que se haya ejecutado todo el código, independientemente de si todos los archivos se cerraron correctamente. La ruta especificada en el objeto Archivo corpus indica la carpeta que se comprimirá. Con createEntries, cada elemento del archivo se agrega por separado, preservando así la estructura original, que se almacena en un archivo llamado archive.zip. Es importante tener en cuenta que el código no comprueba la existencia de la carpeta "D:\Data" ni la presencia de archivos en ella. Si el directorio no existe o está vacío, el código no creará ningún archivo.
El método
CreateEntries
tiene un segundo parámetro opcional includeRootDirectory que indica si el directorio raíz debe incluirse en el archivo. El valor predeterminado es verdadero, por lo que en el ejemplo anterior todas las entradas del archivo se ubicarán dentro de la carpeta "Datos". Si desea que solo se agregue el contenido del directorio, pase false allí.
Ejemplo: crear un archivo desde una carpeta:
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
El siguiente ejemplo de código crea un archivo ZIP con dos archivos: "image.bmp" y "lyrics.txt". Las variables fi1 y fi2 representan estos archivos. El método createEntry del objeto de archivo se utiliza para agregar cada archivo al archivo con las rutas especificadas: "data\pictures" para "image.bmp" y "data\text" para "lyrics.txt". En resumen, este código crea un archivo ZIP llamado "archive.zip" que contiene dos carpetas, "data\pictures" y "data\text", cada una con uno de los archivos respectivos.
try (Archive archive = new Archive()) {
File fi1 = new File("image.bmp");
File fi2 = new File("lyrics.txt");
archive.createEntry("data\\pictures\\photo.bmp", fi1);
archive.createEntry("data\\text\\song.txt", fi2);
archive.save("archive.zip");
}
Cómo comprimir carpeta en 7-ZIP respetando su estructura
El siguiente código demuestra cómo crear un archivo 7Z y agregarle todos los archivos y carpetas del directorio especificado. Funciona de manera similar a un archivo con formato de archivo ZIP. CreateEntries es el método analógico del archivo 7Z. También tiene el parámetro includeRootDirectory. Importante: se implementará en Aspose.ZIP para Java 24.4
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
Cómo comprimir una carpeta en TAR manteniendo su estructura
El código crea un archivo TAR para el directorio especificado. Utiliza la clase TarArchive de la API Java Archive para lograr esto. El método
createEntries
agrega todos los archivos y carpetas del directorio al archivo, preservando la estructura del directorio. Finalmente, el método guardar escribe el contenido del archivo en el archivo "archive.tar".
Muestra:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
El código proporcionado crea un archivo TAR llamado "archive.tar" que contiene dos entradas. Archivo de directorio: agrega todos los archivos y carpetas del directorio "D:\Data" al archivo, preservando la estructura del directorio. Esto archiva efectivamente todo el contenido del directorio especificado. Y entrada de archivo único: agrega un archivo específico llamado "data.bin" de la subcarpeta "interna" al archivo. Esto permite incluir un archivo en particular sin archivar toda la estructura del directorio. En resumen, este código crea un archivo TAR que combina el archivado a nivel de directorio y la inclusión de archivos individuales.
Ejemplo 2: combinar directorio de archivo y
archivo único
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
Otras características compatibles de Aspose.ZIP para la API de Java
Con la biblioteca Aspose.ZIP en Java, puede manejar sin problemas diversas tareas relacionadas con documentos de archivos ZIP. Ya sea que necesite convertir formatos, fusionar archivos, editar contenidos o extraer datos, Aspose.ZIP proporciona una funcionalidad integral para optimizar su flujo de trabajo y mejorar la productividad.
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories