音乐网站的建设,小学网站源码php,网页游戏浏览器,商务网站建设与推广实训报告网上流传的zip压缩与解压 的代码有非常大的问题 尽管使用了ant进行压缩与解压#xff0c;可是任务的流程还是用的java.util.zip 的方式写的#xff0c;我在使用的过程中遇到了压缩的文件夹结构有误#xff0c;甚至出现不同解压软件显示的文件夹结构不同的窘境。 以下给出使用… 网上流传的zip压缩与解压 的代码有非常大的问题 尽管使用了ant进行压缩与解压可是任务的流程还是用的java.util.zip 的方式写的我在使用的过程中遇到了压缩的文件夹结构有误甚至出现不同解压软件显示的文件夹结构不同的窘境。 以下给出使用org.apache.tools.ant.taskdefs.Zip;和org.apache.tools.ant.taskdefs.Expand 的压缩和解压过程。 import java.io.File;import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;public class Zipper {public final static String encoding GBK;// 压缩public static void zip(String srcPathname, String zipFilepath)throws BuildException, RuntimeException {File file new File(srcPathname);if (!file.exists())throw new RuntimeException(source file or directory srcPathname does not exist.);Project proj new Project();FileSet fileSet new FileSet();fileSet.setProject(proj);// 推断是文件夹还是文件if (file.isDirectory()) {fileSet.setDir(file);// ant中include/exclude规则在此都能够使用// 比方:// fileSet.setExcludes(**/*.txt);// fileSet.setIncludes(**/*.xls);} else {fileSet.setFile(file);}Zip zip new Zip();zip.setProject(proj);zip.setDestFile(new File(zipFilepath));zip.addFileset(fileSet);zip.setEncoding(encoding);zip.execute();}// 解压缩public static void unzip(String zipFilepath, String destDir)throws BuildException, RuntimeException {if (!new File(zipFilepath).exists())throw new RuntimeException(zip file zipFilepath does not exist.);Project proj new Project();Expand expand new Expand();expand.setProject(proj);expand.setTaskType(unzip);expand.setTaskName(unzip);expand.setEncoding(encoding);expand.setSrc(new File(zipFilepath));expand.setDest(new File(destDir));expand.execute();}public static void main(String []args){unzip(D:\\123.zip,D:\\123);zip(D:\\upload,D:\\upload.zip);}
} 转载于:https://www.cnblogs.com/mfrbuaa/p/3864774.html