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;
}
}