如何使用 jFilechooser 保存文件夹而不是文件?

How to save a folder instead of a file using jFilechooser?

所以基本上我坚持的是我有这个 jFrame,其中有两个 TextAreas,我希望保存按钮的行为方式是当我输入保存并浏览目录并输入一些名称和按保存我想保存一个包含这两个文件的文件夹。这是我用来保存其中一个 textAreas 的代码,因此我有两个保存按钮来保存两者,有人可以建议一些东西,以便当我输入保存时我在该文件夹中有这两个文件。

这是我使用的代码:

String content = Area.getText();

 JFileChooser chooser = new JFileChooser();

 chooser.setCurrentDirectory(new File("/home"));

 int retrieval = chooser.showSaveDialog(null);

 if (retrieval == JFileChooser.APPROVE_OPTION) {

    try(FileWriter fw = new FileWriter(chooser.getSelectedFile()+".txt")) {
                fw.write(content.toString());
    }
    catch (Exception ex) {
        ex.printStackTrace();
    }
 }

我以前遇到过这个问题,我想出了这个解决方案:

String content = Area.getText();

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("/home"));

int retrieval = chooser.showSaveDialog(null);
if (retrieval == JFileChooser.APPROVE_OPTION) {
    try {
       File dir = new File(chooser.getSelectedFile().toString());
       dir.mkdir();
       System.out.println(chooser.getSelectedFile().toString());
       File file = new File(chooser.getSelectedFile().toString()+ "/temp.txt");

       if (!file.exists()) {
            file.createNewFile();
       }

       FileWriter fw = new FileWriter(file.getAbsoluteFile());
       BufferedWriter bw = new BufferedWriter(fw);
       bw.write(content);
       bw.close();
   }
   catch (Exception ex) {
       ex.printStackTrace();
   }
}

看看它的作用是它为您提供使用 chooser.getSelectedFile() 创建文件夹的确切位置,然后使用它可以在其中添加一个文件。