Android Unzip File upZipSelectedFile(File zipFile, String folderPath, String nameContains)

Here you can find the source of upZipSelectedFile(File zipFile, String folderPath, String nameContains)

Description

up Zip Selected File

Declaration

public static ArrayList<File> upZipSelectedFile(File zipFile,
            String folderPath, String nameContains) throws ZipException,
            IOException 

Method Source Code

//package com.java2s;

import java.io.File;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import java.util.ArrayList;

import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

public class Main {
    private static final int BUFF_SIZE = 1024 * 1024;
    private static final String ENCODE_GB2312 = "GB2312";
    private static final String ENCODE_8859_1 = "8859_1";

    public static ArrayList<File> upZipSelectedFile(File zipFile,
            String folderPath, String nameContains) throws ZipException,
            IOException {/*from w ww  .j  av a 2  s.  c  o  m*/
        ArrayList<File> fileList = new ArrayList<File>();

        File desDir = new File(folderPath);
        if (!desDir.exists()) {
            desDir.mkdir();
        }

        ZipFile zf = new ZipFile(zipFile);
        for (Enumeration<?> entries = zf.entries(); entries
                .hasMoreElements();) {
            ZipEntry entry = ((ZipEntry) entries.nextElement());
            if (entry.getName().contains(nameContains)) {
                InputStream in = zf.getInputStream(entry);
                String str = folderPath + File.separator + entry.getName();
                str = new String(str.getBytes(ENCODE_8859_1), ENCODE_GB2312);
                File desFile = new File(str);
                if (!desFile.exists()) {
                    File fileParentDir = desFile.getParentFile();
                    if (!fileParentDir.exists()) {
                        fileParentDir.mkdirs();
                    }
                    desFile.createNewFile();
                }
                OutputStream out = new FileOutputStream(desFile);
                byte buffer[] = new byte[BUFF_SIZE];
                int realLength;
                while ((realLength = in.read(buffer)) > 0) {
                    out.write(buffer, 0, realLength);
                }
                in.close();
                out.close();
                fileList.add(desFile);
            }
        }
        return fileList;
    }
}

Related

  1. upZipFile(File zipFile, String folderPath)
  2. upZipFile(File zipFile, String folderPath)
  3. upZipFile(String zipFile, String folderPath)
  4. upZipFile(String zipFile, String folderPath)
  5. upZipSelectedFile(File zipFile, String folderPath, String nameContains)
  6. unZip(File srcFile, File targetFile)
  7. unZip(String zipFile, String targetPath)
  8. unZip(String zipfile, String destDir)
  9. UpZip(String zipFileString, String fileString)