Обзор
Архивы, которые состоят из записей, имеют метод createEntries для сжатия всей папки. Такие методы сохраняют структуру каталогов и рекурсивно включают все подкаталоги. Также вы можете добавить отдельную запись файла в произвольную подкаталог в архиве.Как заархивировать папку в ZIP
Если вы хотите создать ZIP архив из всей папки, сохраняя структуру, вы можете использовать API Aspose.Zip для Java и следующий код. Конструкция try-with-resources автоматически закрывает ресурс Archive после выполнения всего кода, независимо от того, все ли файлы закрыты правильно. Путь, указанный в объекте File corpus, указывает папку, которая будет сжата. С помощью createEntries, каждый элемент архива добавляется отдельно, таким образом сохраняя оригинальную структуру, которая хранится в файле под названием archive.zip. Важно отметить, что код не проверяет наличие папки "D:\Data" или наличие в ней файлов. Если каталог не существует или пуст, код не создаст никакого архива.
Метод
CreateEntries
имеет необязательный второй параметр includeRootDirectory, который указывает, нужно ли включать корневой каталог в архив. По умолчанию значение true, поэтому в приведенном примере все записи архива будут находиться внутри папки "Data". Если вы хотите добавить только содержимое каталога, передайте false.
Пример - Создание архива из папки:
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
Следующий пример кода создает ZIP архив с двумя файлами: "image.bmp" и "lyrics.txt". Переменные fi1 и fi2 представляют эти файлы. Метод createEntry объекта архива используется для добавления каждого файла в архив с указанными путями: "data\pictures" для "image.bmp" и "data\text" для "lyrics.txt". В итоге, этот код создает ZIP архив под названием "archive.zip", содержащий две папки, "data\pictures" и "data\text", каждая из которых содержит один из соответствующих файлов.
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");
}
Как сжать папку в 7-ZIP с сохранением структуры
Следующий код демонстрирует, как создать 7Z архив и добавить в него все файлы и папки из указанного каталога. Он работает аналогично архиву с форматом ZIP файла. Метод CreateEntries является аналогичным методом для 7Z архива. Он также имеет параметр includeRootDirectory. Важно: будет реализован в Aspose.ZIP for Java 24.4
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
Как сжать папку в TAR с сохранением её структуры
Код создает TAR архив для указанного каталога. Он использует класс TarArchive из Java Archive API для достижения этого. Метод
createEntries
добавляет все файлы и папки из каталога в архив, сохраняя структуру каталога. Наконец, метод save записывает содержимое архива в файл "archive.tar".
Пример:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
Приведенный код создает TAR архив под названием "archive.tar", содержащий две записи. Каталог Архив - Он добавляет все файлы и папки из каталога "D:\Data" в архив, сохраняя структуру каталога. Это эффективно архивирует все содержимое указанного каталога. И отдельная запись файла - он добавляет конкретный файл под названием "data.bin" из подкаталога "inner" в архив. Это позволяет включить определенный файл без архивирования всей структуры каталога. В итоге, этот код создает TAR архив, который объединяет как архивирование на уровне каталогов, так и включение отдельных файлов.
Пример 2 – Комбинированное архивирование каталога и
отдельного файла
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
Другие поддерживаемые функции API Aspose.ZIP для Java
С библиотекой Aspose.ZIP в Java, вы можете без проблем выполнять различные задачи, связанные с документами ZIP. Независимо от того, нужно ли вам конвертировать форматы, объединять файлы, редактировать содержимое или извлекать данные, Aspose.ZIP предоставляет всестороннюю функциональность для упрощения рабочего процесса и повышения продуктивности.
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