Вам необходимо импортировать пакет ant.jar и загрузить его на веб -сайте Apache (http://ant.apache.org/bindownload.cgi).
Кода -копия выглядит следующим образом:
Импорт java.io.bufferedinputstream;
Импорт java.io.bufferedOutputStream;
Импорт java.io.file;
импортировать java.io.fileinputstream;
Импорт java.io.fileOutputStream;
импортировать java.io.ioexception;
импортировать java.util.zip.zipoutputstream;
Импорт org.apache.tools.ant.project;
Импорт org.apache.tools.ant.taskdefs.expand;
Импорт org.apache.tools.zip.zipentry;
импорт com.xyq.io.util.closeioutil;
открытый класс Ziputil {
частная статическая конечная строка Encode = "UTF-8";
public static void zip (строка inputfilepath, string zipfilename) {
File inputfile = new File (inputFilePath);
if (! inputfile.exists ())
бросить новое runtimeexception («исходного файла не существует !!!»);
File basetarzipfile = new File (zipfilename) .getParentFile ();
if (! basetarzipfile.exists () &&! basetarzipfile.mkdirs ())
бросить новое runtimeexception («целевой файл не может быть создан !!!»);
BufferedOutputStream bos = null;
FileOutputStream OUT = null;
Zipoutputstream zout = null;
пытаться {
// Создать объект вывода файла, запрос: обратите внимание на поддержку китайской
out = new FileOutputStream (new String (Zipfilename.getBytes (encode)));
bos = new BufferedOutputStream (Out);
// подключено
ZOUT = new ZipOutputStream (BOS);
Zip (Zout, InputFile, inputFile.getName ());
Kelowioutil.closeall (Zout, Bos, Out);
} catch (Exception e) {
e.printstacktrace ();
}
}
Private Static void Zip (ZipOutputStream Zout, файл файла, строка база) {
пытаться {
// Если направленность файла является каталогом
if (file.isdirectory ()) {
// Получить файл в каталоге
File [] listfiles = file.listfiles ();
// Создать запись на молнии
zout.putnextentry (новый zipentry (base + "/"));
base = (base.length () == 0? "": base + "/");
if (listfiles! = null && listfiles.length> 0)
// Путешествовать файлы в каталоге
для (файл F: listfiles)
// рекурсивно введите этот метод
Zip (Zout, F, Base + f.getName ());
}
// Если направленность файла является файлом
еще {
if (base == "") {
base = file.getName ();
}
// заполнить ручку файла
zout.putnextentry (новый zipentry (base));
// Начало сжатие
// Читать из притока файла, запишите на Zip Otflow
writefile (Zout, файл);
}
} catch (Exception e) {
e.printstacktrace ();
}
}
Private Static void writefile (zipoutputstream Zout, файл файла)
бросает ioException {
FileInputStream in = null;
BufferedInputStream bis = null;
in = new FileInputStream (file);
bis = new BufferedInputStream (in);
int len = 0;
byte [] buff = new Byte [2048];
while ((len = bis.read (buff))! = -1)
Zout.Write (Buff, 0, Len);
zout.flush ();
Kelowioutil.closeall (bis, in);
}
/***
* Декомпрессия
*
* @param Zippath
* Путь файла Zip
* @param destinationpath
* Пункт назначения декомпрессии
* @param ecode
* Кодированный набор символов файлов
*/
public static void unzip (string Zippath, String destinationPath) {
File Zipfile = новый файл (Zippath);
if (! zipfile.exists ())
Бросьте новое runtimeexception ("zip file" + Zippath
+ «не существует»);
Project Proj = New Project ();
Expand Expand = new Expand ();
Expand.SetProject (Proj);
Expand.SetTaskType ("unzip");
Expand.SetTaskName ("unzip");
Expand.setsrc (Zipfile);
Expand.SetDest (новый файл (destinationPath));
Expand.SetEncoding (кодирование);
Expand.Execute ();
System.out.println ("unzip сделано !!!");
}
public static void main (string [] args) {
String dir = new String ("f: // my Backup // документ // myeclipse+9.0 Официальная версия Cracking and Activation (профессиональный тест доступен)");
dir = new String ("f: /111.jpg");
Zip (Dir, "f: /bzbxb/zipant.zip");
unzip ("f: /bzbxb/zipant.zip", "f:/xx/xx/");
}
}