亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        JSP上面實(shí)現(xiàn)目錄壓縮

        字號:


            zip方法 zipPath參數(shù)為保存zip的文件路徑 srcPath參數(shù)為需要壓縮的目錄 在linux window上面測試無問題!主要是編碼問題比較麻煩~要是有其他異常 請留言 或者 有什么更好的方法 歡迎給更多的意見
            //zip zhe folder
            void zip(String zipPath, String srcPath,javax.servlet.jsp.JspWriter out) throws Exception {
            FileOutputStream output = null;
            ZipOutputStream zipOutput = null;
            try{
            output = new FileOutputStream(zipPath);
            zipOutput = new ZipOutputStream(output);
            zipEntry(zipOutput,srcPath,srcPath,zipPath);
            }catch(Exception e){
            out.print("file zip error");
            }finally{
            if(zipOutput!=null)zipOutput.close();
            }
            out.print("zip ok"+zipPath);
            }
            //add the zip entry
            void zipEntry(ZipOutputStream zipOs, String initPath,String filePath,String zipPath) throws Exception {
            String entryName = filePath;
            File f = new File(filePath);
            if (f.isDirectory()){// ??
            String[] files = f.list();
            for(int i = 0; i < files.length; i++)
            zipEntry(zipOs, initPath, filePath + File.separator + files[i],zipPath);
            return;
            }
            String chPh = initPath.substring(initPath.lastIndexOf("/") + 1);// ?????
            int idx=initPath.lastIndexOf(chPh);
            if (idx != -1) {
            entryName = filePath.substring(idx);
            }
            ZipEntry entry;
            entry = new ZipEntry(entryName);
            File ff = new File(filePath);
            if(ff.getAbsolutePath().equals(zipPath))return;
            entry.setSize(ff.length());
            entry.setTime(ff.lastModified());
            //the CRC efficacy
            entry.setCrc(0);
            CRC32 crc = new CRC32();
            crc.reset();
            zipOs.putNextEntry(entry);
            int len = 0;
            byte[] buffer = new byte[2048];
            int bufferLen = 2048;
            FileInputStream input =null;
            try{
            input = new FileInputStream(filePath);
            while ((len = input.read(buffer, 0, bufferLen)) != -1) {
            zipOs.write(buffer, 0, len);
            crc.update(buffer, 0, len);
            }
            }catch(Exception e){
            }finally{
            if(input!=null)input.close();
            }
            entry.setCrc(crc.getValue());
            }