2011-01-22 23 views
0

このアプリケーションを作成すると、お尻に痛みになっています! Javaを使用する私は多くの異なるアプリケーションによって作成された.zipファイルを解凍したいと考えています: 私の7-zipを使って、これは完璧にうまくいきます。somebodys winrarを使ってファイルを完全に圧縮します。ここで は私のコードです:Java - 異なる圧縮ファイルの解凍

public static void ExtractModZip(File Zip, File Dest) { 
     try { 
      if (Zip.getName().toLowerCase().endsWith(".zip")) { 
      } 
      ZipFile zip = new ZipFile(Zip); 
      System.out.println(zip.getName() + " opened."); 
      Enumeration entries = zip.entries(); 
      String ModName = Zip.getName().substring(0, Zip.getName().length() - 4); 
      File base = new File(Dest + File.separator + ModName); 
      base.mkdirs(); 
      InputStream entryStream = null; 
      FileOutputStream fos = null; 
      while (entries.hasMoreElements()) { 
       ZipEntry entry = (ZipEntry) entries.nextElement(); 
       entryStream = zip.getInputStream(entry); 
       String entryName = entry.getName().replace('/', File.separatorChar); 
       entryName = entryName.replace('\\', File.separatorChar); 


       if (!entry.isDirectory()) { 
        File file = new File(base + File.separator + entryName); 
        File Base = new File(base + File.separator); 
        if (!Base.exists()) { 
         Base.mkdirs(); 
        } 

        fos = new FileOutputStream(file); 
        try { 
         // Allocate a buffer for reading the entry data. 
         byte[] buffer = new byte[1024]; 
         int bytesRead; 
         // Read the entry data and write it to the output file. 
         while ((bytesRead = entryStream.read(buffer)) != -1) { 
          fos.write(buffer, 0, bytesRead); 
         } 
         System.out.println(entry.getName() + " extracted."); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 


       } else { 
        File file = new File(base + File.separator + entryName); 
        file.mkdir(); 
       } 
      } 
      fos.close(); 
      entryStream.close(); 
     } catch (ZipException ex) { 
      Logger.getLogger(fileUtils.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (IOException ex) { 
      Logger.getLogger(fileUtils.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

例: 私はそれが完全に内部のフォルダや特定のファイルを逃し、この方法を使用してFIEを解凍した...

答えて

1

は異なる解凍(解凍)の実装を試してみてください。 TrueZIPはよく知られている。

関連する問題