package com.chen.util; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 运行 * * @author chenguoji * */ public class Main { /** * 程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression) * <p> * 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。 * <p> * 在本段代码中,实现的是压缩部分;解压部分见本包中Decompression部分。 * * @author HAN * */ public static void main(String[] args) { // TODO Auto-generated method stub /*// 压缩文件夹所有文件和下级目录下的文件 CompressionZip.zip("E:\\ZipTestCompressing.zip", new File("E:\\export")); // 解压 DecompressionZip.zip("E:\\ZipTestCompressing.zip", "E:\\export"); */ //压缩单个文件 // File file = new File("E:\\chen\\a\\a1.jpg"); // CompressionZip.zipFile(file, "E:\\zip\\dan.zip"); //获取文件夹下所有文件 List<File> files = new ArrayList<File>(); getFile("E:\\chen",files); for (File file : files) { System.out.println("----文件名称----"+file.getName()); } //压缩指定文件 CompressionZip.zipFile("E:\\zip\\dan.zip", files); } /** * 获取所有文件夹下的所有文件和下级目录下的文件 * @param path * @param files * @return */ public static List<File> getFile(String path, List<File> files) { File file = new File(path); File[] tempList = file.listFiles(); System.out.println("该目录下对象个数:" + tempList.length); for (int i = 0; i < tempList.length; i++) { if (tempList[i].isFile()) { System.out.println("文 件:" + tempList[i]); files.add(tempList[i]); } if (tempList[i].isDirectory()) { // System.out.println("文件夹:" + tempList[i]); getFile(tempList[i].toString(),files); } } return files; } }
最近下载更多