gpt4 book ai didi

java - 如何在java中使用JFileChooser选择zip文件

转载 作者:行者123 更新时间:2023-12-01 10:01:11 24 4
gpt4 key购买 nike

我正在尝试解压缩一个压缩文件夹,并在解压缩后将该压缩文件夹中存在的所有文本文件放入同一驱动器中。这是代码。

    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();
}
}

但问题是,当我尝试使用 JFileChooser 导航到该文件夹​​时,G:\驱动器中存在的压缩文件不可见。

我应该怎么做才能选择要解压的压缩文件夹。

最佳答案

您的问题在这一行:

c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

JFileChooser 只会让您选择目录,这就是您的 zip 文件不显示的原因。

只需删除此行,您的代码就可以工作。

关于java - 如何在java中使用JFileChooser选择zip文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com