解压文件

   /**
     * 解压RAR
     */
    public void unRarFile(String targetPath, String absolutePath)
    {

        try
        {
            /** 系统安装winrar的路径 */
            String cmd = Constants.RAR_PATH;

            /** 解压命令 */
            String unrarCmd = cmd + Constants.CMD_ORDER + absolutePath + " " + targetPath;
            Runtime rt = Runtime.getRuntime();
            Process pre = rt.exec(unrarCmd);
            InputStreamReader isr = new InputStreamReader(pre.getInputStream());
            BufferedReader bf = new BufferedReader(isr);
            String line = null;
            while ((line = bf.readLine()) != null)
            {
                line = line.trim();
                if ("".equals(line))
                {
                    continue;
                }
              
            }

            bf.close();
        }
        catch (Exception e)
        {
            System.out.println("解压发生异常");
        }
    }


    /**
     * 解压zip文件
     * @param targetPath
     * @param zipFilePath
     */
    public void unzipFile(String targetPath, String zipFilePath)
    {

        File zipFile = new File(zipFilePath);
        InputStream is = null;
        ;
        ZipInputStream zis = null;
        try
        {
            is = new FileInputStream(zipFile);
            zis = new ZipInputStream(is);
        }
        catch (FileNotFoundException e1)
        {
            e1.printStackTrace();
        }

        ZipEntry entry = null;
        try
        {
            while ((entry = zis.getNextEntry()) != null)
            {
                String zipPath = entry.getName();
                try
                {

                    if (entry.isDirectory())
                    {
                        File zipFolder = new File(targetPath + File.separator + zipPath);
                        if (!zipFolder.exists())
                        {
                            zipFolder.mkdirs();
                        }
                    }
                    else
                    {
                        File file = new File(targetPath + File.separator + zipPath);
                        Constants.setREAL_UPLOAD_PATH(file.getPath());
                        if (!file.exists())
                        {
                            File pathDir = file.getParentFile();
                            pathDir.mkdirs();
                            file.createNewFile();
                        }

                        FileOutputStream fos = new FileOutputStream(file);
                        int bread;
                        while ((bread = zis.read()) != -1)
                        {
                            fos.write(bread);
                        }
                        fos.close();

                    }
                    System.out.println("成功解压:" + zipPath);

                }
                catch (Exception e)
                {
                    System.out.println("解压" + zipPath + "失败");
                    continue;
                }
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        try
        {
            zis.close();
            is.close();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        System.out.println("解压结束");

    }

你可能感兴趣的:(文件)