Мне нужно распаковать zip-файл, защищенный паролем.
До сих пор я получил это с помощью Интернета, и я пытаюсь понять код.
но он выбрасывает нулевое исключение и я действительно запутался. это "ребенок"
или что-то другое. пожалуйста, объясните.
Исключение в потоке "main" java.lang.NullPointerException в
unzip2.Unzip2.main (Unzip2.java:27)
C: \ Users \ ZXC \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ исполнитель-сниппеты \ run.xml: 53:
Java вернула: 1 BUILD FAILED (общее время: 0 секунд)
там написано, что он в строке 27.
для (конечный дочерний файл: file. ListFiles ()) {
Насколько я знаю, nullpointerexception означает, что моя переменная равна нулю, но я не могу найти, где здесь находится пустое значение и как его исправить
вот мой полный код. пожалуйста, просветите меня.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package unzip2;
/**
*
* @author zxc
*/
import java.io.File;
import java.util.List;
import javax.swing.filechooser.FileNameExtensionFilter;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
public class Unzip2 {
public static void main(String[] args) {
final FileNameExtensionFilter extensionFilter = new FileNameExtensionFilter("N/A","zip");
//Folder where zip file is present
final File file = new File("C:/Users/zxc/Desktop/ziptest/ziptest2.zip");
for (final File child : file.listFiles()) {
try {
ZipFile zipFile;
zipFile = new ZipFile(child);
if (extensionFilter.accept(child)) {
if (zipFile.isEncrypted()) {
//Your ZIP password
zipFile.setPassword("password");
}
List fileHeaderList = zipFile.getFileHeaders();
for (int i = 0; i < fileHeaderList.size(); i++) {
FileHeader fileHeader = (FileHeader) fileHeaderList.get(i);
//Path where you want to Extract
zipFile.extractFile(fileHeader, "C:/Users/zxc/Desktop/zipfile");
System.out.println("Extracted");
}
}
} catch (ZipException e) {
System.out.println("Please Try Again");
}
}
}
}