我正在尝试为选定的文件名添加扩展名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”扩展名。
在我看来,你想做的就是改变name所选文件的名称,而不是重命名文件系统上的文件。在这种情况下,你不使用File.renameTo
。你只需改变File
。像下面这样的东西应该有效:
File f = fc.getSelectedFile();
String name = f.getAbsoluteFile()+".txt";
f = new File(name);
File.renameTo http://docs.oracle.com/javase/6/docs/api/java/io/File.html#renameTo%28java.io.File%29尝试重命名文件系统上的文件。例如:
File oldFile = new File("test1.txt");
File newFile = new File("test2.txt");
boolean success = oldFile.renameTo(newFile); // renames test1.txt to test2.txt
在这三行之后,success
将true
如果文件test1.txt
可以重命名为test2.txt
, and false
如果重命名不成功(例如test1.txt
不存在、在另一个进程中打开、权限被拒绝等)
我会冒险猜测您尝试的重命名失败,因为您正在尝试重命名目录(您正在使用JFileChooser
与DIRECTORIES_ONLY
选项)。如果您的程序使用此目录中的文件,或者在其中打开命令提示符,它们将反对重命名此目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)