標籤:
/**建立一個壓縮檔,from為檔案夾路徑,to為建立好後壓縮檔路徑*/ public void CreateZip(String from,String to) throws IOException { List<File>list=getFiles(from); ZipOutputStream out=new ZipOutputStream(new FileOutputStream(new File(to))); for(File f:list) { InputStream in=new FileInputStream(f); String name=getRelName(from,f); ZipEntry en=new ZipEntry(new File(from).getName()+"/"+name); en.setSize(f.length()); out.putNextEntry(en); out.setComment("中文測試"); int len=0; byte[]buffer=new byte[1024]; while(-1!=(len=in.read(buffer))) { out.write(buffer, 0, len); } in.close(); } out.close(); } /**擷取檔案的相對路徑*/ private String getRelName(String from,File f) { // TODO Auto-generated method stub String a=f.getAbsolutePath().replace(from+"\\", ""); a=a.replace("\\", "/"); System.out.println(from+"---"+a); return a; } /**擷取路徑下所有檔案,包括檔案夾下的*/ private List<File> getFiles(String sou) { List<File>list=new ArrayList<File>(); File f=new File(sou); File files[]=f.listFiles(); for(File file:files) { if(file.isFile()) { list.add(file); } else { list.addAll(getFiles(file.getPath())); } } return list; }
##########################################
轉自:http://blog.csdn.net/liu149339750/article/details/7887701
##########################################
[轉]實現檔案壓縮