antを使用してパッケージを解凍、圧縮する
3322 ワード
使用するjarパッケージ:
ant.jar
1、解凍パック:
2、圧縮パック:
ant.jar
1、解凍パック:
/**
* zip
* @param unZipfile: ( + +.+ )
* @param destFile:
* */
public void UNCompress(File unZipfile, File destFile) {
FileOutputStream fileOut;
File file;
InputStream inputStream;
ZipFile zipFile=null;
ZipOutputStream zipOut=null; // Zip
try {
// zip
zipFile = new ZipFile(unZipfile,"GBK");// , ( , )
// zipFile ,
for (@SuppressWarnings("unchecked")
Enumeration<ZipEntry> entries = zipFile.getEntries(); entries.hasMoreElements();) {
ZipEntry entry = entries.nextElement();
//
file = new File(destFile+File.separator+entry.getName());
if (entry.isDirectory()) {
file.mkdirs();
} else {
File parent = file.getParentFile();// , .
if (!parent.exists()) {
parent.mkdirs();
}
//
inputStream = zipFile.getInputStream(entry);
fileOut = new FileOutputStream(file);
int length = 0;
//
while ((length = inputStream.read(buf)) > 0) {
fileOut.write(buf, 0, length);
}
fileOut.close();
inputStream.close();
}
}
zipFile.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
2、圧縮パック:
/**
*
* @param classFileList:
* */
public void compress(List<File> classFileList) {
String srcPathName=null;//
File zipFile=null;// ( + +.+ )
File srcdir=null;
Project prj=null;
Zip zip = null;
if(classFileList!=null && classFileList.size()>0){
for(File f:classFileList){
//System.out.println(f.getAbsolutePath()+"
"+f.getName());
srcPathName = f.getAbsolutePath();
//System.out.println(f.getAbsolutePath()+File.separator+f.getName()+".zip");
zipFile = new File(f.getAbsolutePath()+".zip") ;
srcdir= new File(srcPathName);
if (!srcdir.exists()){
throw new RuntimeException(srcPathName + " !");
}
if(zipFile.exists()){//
zipFile.delete();
}
prj = new Project();
zip = new Zip();
zip.setEncoding("GBK");// , ,
zip.setProject(prj);
zip.setDestFile(zipFile);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
fileSet.setDir(srcdir);
zip.addFileset(fileSet);
zip.execute(); //
}
}
}