解压缩到内部存储中的文件夹

时间:2014-12-23 06:36:02

标签: java android

我试图在内部存储中创建一个名为" unzip"的文件夹。然后将文件解压缩到内部存储"解压缩文件夹"。不确定我做错了什么?如果你能解释一下它有什么不对,那就太好了!感谢

编辑:问题是我不认为正在创建文件夹,文件也没有被解压缩。

public void send(View view) {
    try {
        File mydir = this.getDir("unzip", Context.MODE_PRIVATE);//create folder in internal storage
        unzip(getFilesDir().getAbsolutePath(), job_no, getFilesDir() + "/unzip/");
    } catch (IOException e) {

    }
}

public void unzip(String filepath, String filename, String unzip_path) throws IOException {
    InputStream is = new FileInputStream(filepath + filename);
    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));

    try {
        ZipEntry ze;
        while ((ze = zis.getNextEntry()) != null) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int count;

            String filename_temp = ze.getName();
            File fmd = new File(filepath + filename_temp);

            if (!fmd.getParentFile().exists()) {
                fmd.getParentFile().mkdirs();
            }

            FileOutputStream fout = new FileOutputStream(unzip_path + filename_temp);

            while ((count = zis.read(buffer)) != -1) {
                baos.write(buffer, 0, count);
                byte[] bytes = baos.toByteArray();
                fout.write(bytes);
                baos.reset();
            }

            fout.close();
            //}
        }
    } finally {
        zis.close();
    }
}

1 个答案:

答案 0 :(得分:0)

这将获得绝对存储设备。

final static String MEDIA_PATH = Environment.getExternalStorageDirectory().getPath() + "/";