Java压缩辅助类(支持文件夹压缩,加密,增加描述)
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import nochump.util.extend.ZipOutput; import com.training.commons.file.FileUtils; /** * * <p>Title: </p> * <p>desc: * <p>Copyright: Copyright(c)Gb 2012</p> * @author 三少 * @website www.ij2ee.com * @time 下午4:00:13 * @version 1.0 * @since */ public class ZipOutputStreamUtils { public static void main(String args[]) throws IOException { //zipFiles("D://zipTest","D://1.ZIP"); zipFilesWithPwd("D://zipTest","D://1.ZIP", "123456"); } /** * * @param path 文件夹路径 * @param returnFileName * @throws IOException */ public static void zipFiles(String path, String returnFileName) throws IOException { File inFile = new File(path); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream( returnFileName)); zos.setComment("多文件处理"); zipFile(inFile, zos, ""); zos.close(); } /* * 压缩时候加密.. */ public static void zipFilesWithPwd(String zipDir, String zipName, String password) { File file = new File(zipDir); byte[] zipByte = ZipOutput .getEncryptZipByte(file.listFiles(), password); FileUtils.writeByteFile(zipByte, new File(zipName)); } public static void zipFile(File inFile, ZipOutputStream zos, String dir) throws IOException { if (inFile.isDirectory()) { File[] files = inFile.listFiles(); for (File file : files) zipFile(file, zos, inFile.getName()); } else { String entryName = null; if (!"".equals(dir)) entryName = inFile.getName(); else entryName = inFile.getName(); ZipEntry entry = new ZipEntry(entryName); zos.putNextEntry(entry); InputStream is = new FileInputStream(inFile); int len = 0; while ((len = is.read()) != -1) zos.write(len); is.close(); } } public static void deleteFile(File file) { if (file.exists()) { // 判断文件是否存在 if (file.isFile()) { // 判断是否是文件 file.delete(); // delete()方法 你应该知道 是删除的意思; } else if (file.isDirectory()) { // 否则如果它是一个目录 File files[] = file.listFiles(); // 声明目录下所有的文件 files[]; for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件 deleteFile(files[i]); // 把每个文件 用这个方法进行迭代 } } file.delete(); } else { System.out.println("所删除的文件不存在!" + '/n'); } } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10986.html