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();
}
}
但問題是,壓縮foler這是目前在G:\驅動器是不可見的,當我嘗試導航使用JFileChooser的文件夾。
我該怎麼做才能讓我選擇壓縮的文件夾來解壓縮。
我想你應該在你設置JFileChooser的地方顯示你的代碼。我不認爲讀取您的zip文件的代碼與您的問題有任何關係,因爲只有在您選擇了一個文件後纔會運行 – Bartvbl
我已經上傳了完整的代碼。 – a874