публичный класс UnZipper {
/**
* Функция распаковки файлов в текущий каталог эквивалентна щелчку правой кнопкой мыши и выбору распаковки.
* @param zipFile
* @парам
* @author Габриэль
*/
@SuppressWarnings("rawtypes")
public static void unZipFiles(File zipFile) выдает IOException {
//Получаем каталог, в котором находится сжатый файл
Строковый путь = zipFile.getAbsolutePath();
path=path.substring(0,path.lastIndexOf("//"));
// System.out.println("путь "+путь);
ZipFile zip = новый ZipFile (zipFile);
for(Записи перечисления =zip.entries();
записи.hasMoreElements();){
Запись ZipEntry = (ZipEntry)entries.nextElement();
Строка zipEntryName = вход.getName();
InputStream in = zip.getInputStream(entry);
//выходной каталог outPath
String outPath = (path+"//"+zipEntryName).replaceAll("//*", "/");;
//System.out.println("outPath "+outPath);
//Определяем, существует ли путь, если нет, создаем путь к файлу
Файл файл = новый файл (outPath.substring (0, outPath.lastIndexOf ('/')));
если(!file.exists()){
файл.mkdirs();
}
//Определяем, является ли полный путь к файлу папкой. Если он был загружен выше, его не нужно распаковывать.
если (новый файл (outPath).isDirectory()) {
продолжать;
}
//Информация о пути к выходному файлу
System.out.println(outPath);
OutputStream out = новый FileOutputStream (outPath);
байт[] buf1 = новый байт[1024];
интервал Лен;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
в.закрыть();
выход.закрыть();
}
System.out.println("******************Распаковка завершена*********************** *");
}
public static void main(String[] args) {
пытаться {
unZipFiles(новый файл("D://all//zip//Default.adiumemoticonset.zip"));
} catch (IOException e) {
// TODO Автоматически сгенерированный блок catch
е.printStackTrace();
}
}
}