Overview
Gli archivi costituiti da voci dispongono del metodo createEntries per comprimere l'intera cartella. Tali metodi rispettano la struttura delle directory e compongono in modo ricorrente tutte le sottocartelle. Inoltre è possibile aggiungere una singola voce di file in una sottocartella arbitraria ovunque nell'archivio.Come zippare una cartella
Se desideri creare un archivio ZIP da un’intera cartella preservando la struttura, puoi utilizzare l’API Aspose.Zip per Java e il seguente codice. Il costrutto try-with-resources chiude automaticamente la risorsa Archivio dopo che tutto il codice è stato eseguito, indipendentemente dal fatto che tutti i file siano chiusi correttamente. Il percorso specificato nell’oggetto File corpus indica la cartella che verrà compressa. Con createEntries, ogni elemento dell’archivio viene aggiunto separatamente, preservando così la struttura originale, che viene memorizzata in un file chiamato archive.zip. È importante notare che il codice non verifica l’esistenza del codice "D:\Data" cartella o la presenza di file al suo interno. Se la directory non esiste o è vuota, il codice non creerà alcun archivio.
Il metodo
CreateEntries
ha un secondo parametro facoltativo includeRootDirectory che indica se la directory root deve essere inclusa nell’archivio. Il valore predefinito è vero, quindi nell’esempio sopra tutte le voci di archivio si troveranno all’interno di "Dati" cartella. Se vuoi che venga aggiunto solo il contenuto della directory, passa false lì.
Esempio: crea un archivio dalla cartella:
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
L’esempio di codice seguente crea un archivio ZIP con due file: "image.bmp" e "lyrics.txt". Le variabili fi1 e fi2 rappresentano questi file. Il metodo createEntry dell’oggetto archivio viene utilizzato per aggiungere ciascun file all’archivio con i percorsi specificati: "data\immagini" per "immagine.bmp" e "dati\testo" per "testi.txt". In sintesi, questo codice crea un archivio ZIP denominato "archive.zip" contenente due cartelle, "data\immagini" e "data\testo", ciascuno contenente uno dei rispettivi file.
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");
}
Come comprimere una cartella in 7-ZIP rispettandone la struttura
Il codice seguente mostra come creare un archivio 7Z e aggiungervi tutti i file e le cartelle dalla directory specificata. Funziona in modo simile a un archivio con il formato file ZIP. CreateEntries è il metodo analogo dell’archivio 7Z. Ha anche il parametro includeRootDirectory. Importante: sarà implementato in Aspose.ZIP per Java 24.4
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
Come comprimere una cartella in TAR mantenendone la struttura
Il codice crea un archivio TAR per la directory specificata. Per raggiungere questo obiettivo utilizza la classe TarArchive dell’API Java Archive. Il metodo
createEntries
aggiunge tutti i file e le cartelle dalla directory all’archivio, preservando la struttura delle directory. Infine, il metodo di salvataggio scrive il contenuto dell’archivio nel file "archive.tar".
Esempio:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
Il codice fornito crea un archivio TAR denominato "archive.tar" contenente due voci. Archivio directory: aggiunge tutti i file e le cartelle dalla directory "D:\Data" nell’archivio, preservando la struttura delle directory. Ciò archivia effettivamente l’intero contenuto della directory specificata. E voce file singolo: aggiunge un file specifico denominato "data.bin" dal "interno" sottocartella nell’archivio. Ciò consente di includere un file particolare senza archiviare l’intera struttura della directory. In sintesi, questo codice crea un archivio TAR che combina sia l’archiviazione a livello di directory che l’inclusione di singoli file.
Esempio 2: combinare la directory di archiviazione e
file singolo
.
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
Altre funzionalità API Aspose.ZIP per Java supportate
Con la libreria Aspose.ZIP in Java, puoi gestire senza problemi varie attività relative ai documenti di file ZIP. Se hai bisogno di convertire formati, unire file, modificare contenuti o estrarre dati, Aspose.ZIP offre funzionalità complete per semplificare il flusso di lavoro e migliorare la produttività.
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