【发布时间】:2012-04-01 18:00:10
【问题描述】:
我正在尝试为JFileChooser 选择的文件名添加扩展名,尽管我无法让它工作。
这是代码:
final JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = fc.showSaveDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
String name =f.getAbsoluteFile()+".txt";
f.renameTo(new File(name));
FileWriter fstream;
try {
fstream = new FileWriter(f);
BufferedWriter out = new BufferedWriter(fstream);
out.write("test one");
out.close();
} catch (IOException ex) {
Logger.getLogger(AppCore.class.getName()).log(Level.SEVERE, null, ex);
}
}
我不明白为什么这不起作用。我也尝试使用 getPath() 和 getCanonicalPath() 但结果是一样的。该文件在所选目录中创建,但没有“.txt”扩展名。
【问题讨论】:
-
你检查过
renameTo的结果了吗?这来自 Java 文档“此方法是否可以将文件从一个文件系统移动到另一个文件系统取决于平台。应始终检查返回值以确保重命名操作成功。” -
是的,它总是返回 false。它唯一有效的时候是我手动设置新文件名但不包括路径:“test.txt”。这创建了一个包含“test one”但不在所选目录中的txt
-
您确定目标文件不存在吗?
-
是的。创建了一个新文件,但没有扩展名。我只是在桌面上进行测试,所以我可以看到发生了什么。
-
你能用
File f2 = new File(name);创建一个文件吗?
标签: java jfilechooser