2017-07-10 5 views
0

Ich versuche, eine Datei mit der Methode, die ich online gefunden hatte, zu entpacken.Java - Entpacken der Datei gibt FileNotFoundException zurück

public static void unzipFile(String zipFile, String outputFolder) throws IOException { 
     File destDir = new File(outputFolder); 
     if (!destDir.exists()) { 
      destDir.mkdir(); 
     } 
     ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFile)); 
     ZipEntry entry = zipIn.getNextEntry(); 
     while (entry != null) { 
      String filePath = outputFolder + File.separator + entry.getName(); 
      if (!entry.isDirectory()) { 
       extractFile(zipIn, filePath); 
      } else { 
       File dir = new File(filePath); 
       dir.mkdir(); 
      } 
      zipIn.closeEntry(); 
      entry = zipIn.getNextEntry(); 
     } 
     zipIn.close(); 
    } 

    public static void extractFile(ZipInputStream zipIn, String filePath) throws IOException { 
     BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath)); 
     byte[] bytesIn = new byte[4096]; 
     int read = 0; 
     while ((read = zipIn.read(bytesIn)) != -1) { 
      bos.write(bytesIn, 0, read); 
     } 
     bos.close(); 
    } 

Allerdings halte ich auf FileNotFoundException bekommen BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));

Fehlermeldung: java.io.FileNotFoundException: /Users/michael/NetBeansProjects/test/build/web/TEST_ZIP/my-html/css/bootstrap-theme.css (Not a directory)

Ich habe versucht, mit der Fehlerzeile zu ändern:

File file = new File(filePath); 
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); 

aber didn‘ t arbeiten entweder. Die gleiche Fehlermeldung wird in der Konsole angezeigt.

Meine ZIP-Dateistruktur:

my-html 
| 
|- css 
| | 
| |- bootstrap-theme.css 
| |- .. 
| |- .. 
| 
|-index.html 

Antwort

1
destDir.mkdir(); 

Ändern Sie diese an:

destDir.mkdirs(); 

Sie erstellen nur eine Ebene des Verzeichnisses.

+0

Haben Sie in Betracht gezogen, den Javadoc zu konsultieren? Und welchen Teil von "Sie erstellen nur eine Ebene des Verzeichnisses" haben Sie nicht verstanden? – EJP

Verwandte Themen