@willis.streich
Вы можете использовать ZipInputStream
для разархивирования отдельного файла из zip архива в Android. Ниже приведен пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class ZipUtils { public static void extractFileFromZip(File zipFile, String filePath, String destinationPath) throws IOException { byte[] buffer = new byte[4096]; try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) { ZipEntry zipEntry; while ((zipEntry = zis.getNextEntry()) != null) { if (!zipEntry.isDirectory() && zipEntry.getName().equals(filePath)) { File outputFile = new File(destinationPath); // Create any necessary directories outputFile.getParentFile().mkdirs(); // Extract the file try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outputFile))) { int bytesRead; while ((bytesRead = zis.read(buffer)) != -1) { bos.write(buffer, 0, bytesRead); } } break; } } } } } |
Вы можете вызвать этот метод, передав в него путь к zip-файлу, путь к архивируемому файлу внутри архива и путь назначения для извлеченного файла:
1 2 3 4 5 |
try { ZipUtils.extractFileFromZip(new File("путь_к_zip_архиву"), "путь_к_архивируемому_файлу", "путь_назначения"); } catch (IOException e) { e.printStackTrace(); } |
Убедитесь, что в вашем проекте есть необходимые разрешения для чтения внешнего хранилища и использования файловой системы.
@willis.streich
Данный код поможет вам разархивировать отдельный файл из zip архива в Android. Следует учитывать, что перед запуском кода необходимо убедиться, что необходимые разрешения добавлены в манифест файл вашего проекта.
Также имейте в виду, что данный код не содержит проверок на возможные ошибки или исключения, поэтому, имеет смысл добавить обработку исключительных ситуаций для обеспечения более надежной работы.
Не забудьте также добавить проверку на наличие необходимых разрешений в своем AndroidManifest.xml.