gpt4 book ai didi

java - 文件重命名不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:41 27 4
gpt4 key购买 nike

我正在尝试为 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”扩展名。

最佳答案

在我看来,您要做的就是更改所选文件的名称,而不是重命名文件系统上的文件。在这种情况下,您不使用 File.renameTo .您只需更改 File .像下面这样的东西应该可以工作:

        File f = fc.getSelectedFile();
String name = f.getAbsoluteFile()+".txt";
f = new File(name);

File.renameTo 尝试重命名文件系统上的文件。例如:

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 , 和 false如果重命名不成功(例如 test1.txt 不存在,在另一个进程中打开,权限被拒绝等)

我会冒险猜测您正在尝试重命名失败,因为您正在尝试重命名目录(您正在使用带有 JFileChooser 选项的 DIRECTORIES_ONLY)。如果您有程序使用此目录中的文件,或在其中打开命令提示符,它们将反对重命名此目录。

关于java - 文件重命名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966816/

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