Любой способ получить метод сжатия в Java с использованием библиотеки zip4j?

1

Я хочу вернуть логическое значение, чтобы проверить, сжат ли мой zip файл. Будет преимуществом, если я также смогу получить, какой метод сжатия был использован. На данный момент я просто проверяю, что он зашифрован и является действительным zip. Пожалуйста, помогите, если это возможно, используя библиотеку zip4j.

public static boolean isPackageCompressed(String path) throws ZipException{
    boolean isPackageCompressed = false;

    ZipFile zipFile = new ZipFile(path);

    System.out.println(zipFile.isEncrypted());       
    System.out.println(zipFile.isValidZipFile());        

    // TODO. There is no method like zipFile.getCompressionMethod() . 

    return isPackageCompressed; 
}

public static void main(String[] args) {
    try {
        isPackageCompressed("D:\\some.ZIP");
    } catch (ZipException e) {
        e.printStackTrace();
    }
}
  • 1
    Я не знаком с zip4j, но с форматом ZIP. В ZIP-файлах метод сжатия является свойством каждой записи, вполне допустимо смешивать методы сжатия в одном архиве, и вы довольно часто будете встречать смесь записей STORED (вообще не сжатых) и DEFLATEd. Вам, вероятно, нужно будет перебрать записи и посмотреть, сжаты ли они.
  • 0
    @Stefan Bodewig: Не могли бы вы помочь, поделившись кодом?
Показать ещё 3 комментария
Теги:
compression
zip4j

1 ответ

1
Лучший ответ

Проверить это может быть полезно (не полный ответ)

ZipParameters zp = new ZipParameters();
zp.setFileNameInZip("sample.zip");
System.out.println(zp.getCompressionMethod());
System.out.println(Zip4jConstants.COMP_DEFLATE);

OutPut:
8
8
  • 0
    Спасибо, но у меня нет никаких требований для открытия Zip; просто я хочу проверить, каким методом сжатия ZIP-файл сжимается.
  • 0
    Спасибо :) Просто для справки для других: Метод сжатия: 0 - Файл сохранен (без сжатия) 1 - Файл уменьшен 2 - Файл уменьшен с коэффициентом сжатия 1 3 - Файл уменьшен с коэффициентом сжатия 2 4 - Файл уменьшен с коэффициентом сжатия 3 5 - Файл уменьшен с коэффициентом сжатия 4 6 - Файл загружен 7 - Зарезервирован для алгоритма сжатия токенизации 8 - Файл является дефлированным

Ещё вопросы

Сообщество Overcoder
Наверх
Меню