2016-04-22 7 views
0

私は、圧縮されたフォルダを解凍しようとしています。圧縮したフォルダ内にあるすべてのテキストファイルを解凍した後、同じドライブに入れようとしています。JavaでJFileChooserを使用してzipファイルを選択する方法

import java.util.*; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.io.IOException; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 
import java.util.Enumeration; 
import java.util.zip.ZipFile; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

class Unzip implements ActionListener 
{ 
    // JFrame f; 
    JFileChooser c; 
    String folderName;File f;char first; 

    Unzip() 
    { 
     c=new JFileChooser(); 
     c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     c.setDialogTitle("choose file"); 

     int x=c.showOpenDialog(null); 
     if(x==JFileChooser.APPROVE_OPTION) 
     { 
      f=c.getSelectedFile(); 
      first=f.toString().charAt(0); 
      folderName=f.getName(); 
      System.out.println(f.getName()); 
     } 
    } 
    public void actionPerformed(ActionEvent ae) 
    { 

     try{ 
      ZipFile zfile=new ZipFile(f); 

      Enumeration enm=zfile.entries(); 
      while(enm.hasMoreElements()) 
      { 
       ZipEntry entry=(ZipEntry)enm.nextElement(); 
       String name=entry.getName(); 
       System.out.println("name "+name); 
       File file=new File(first+":\\"+name); 
       InputStream is=zfile.getInputStream(entry); 
       FileOutputStream fos=new FileOutputStream(file); 
       int length=0; 
       while((length=is.read())!=-1) 
       { 
        fos.write(length); 
       } 
       is.close(); 
       fos.close(); 
      } 
      zfile.close(); 
      }catch(IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
    public static void main(String s[]) 
    { 
     new Unzip(); 
    } 
} 

しかし、問題はそれをGに存在するzip形式のfolerです:私はJFileChooserのを使用して、そのフォルダの移動しようとすると、\ドライブは表示されません。

私は、そのZIPフォルダを解凍するように選択することができます。

+0

JFileChooserを設定する場所にコードを表示する必要があると思います。私はあなたのzipファイルを読み取るコードはあなたの問題とは何の関係もないと思っています。実際には一度実際に_select_ファイルを実行すれば実現します。 – Bartvbl

+0

今すぐ完全なコードをアップロードしました。 – a874

答えて

1

あなたの問題は、この行にある:

c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 

JFileChooserが唯一のzipファイルが表示されない理由である、あなたがディレクトリを選択できるようになります。

この行を削除するだけでコードが機能します。

関連する問題