【发布时间】:2012-11-25 00:21:37
【问题描述】:
我希望能够重命名文件夹列表以删除不需要的字符(例如,点和双空格必须变成单个空格)。
单击 Gui 中的按钮后,您会看到一个带有正确格式名称的消息框,这表明格式正确并且函数已被调用。 当我查看我创建的测试文件夹时,名称没有改变(即使刷新后也没有)。使用硬编码的字符串也不起作用。
我忽略了什么?
public void cleanFormat() {
for (int i = 0; i < directories.size(); i++) {
File currentDirectory = directories.get(i);
for (File currentFile : currentDirectory.listFiles()) {
String formattedName = "";
formattedName = currentFile.getName().replace(".", " ");
formattedName = formattedName.replace(" ", " ");
currentFile.renameTo(new File(formattedName));
JOptionPane.showMessageDialog(null, formattedName);
}
}
}
【问题讨论】:
-
我认为您需要删除旧文件并创建新文件。
-
在javadoc 中:注意
Files类定义了move方法以独立于平台的方式移动或重命名文件。 -
我在google上查了好几遍,发现以下代码:
File f = new File("Rename.java~"); f.renameTo(new File("junk.dat"));除此之外从来没有其他任何东西,你的意思是它已被弃用还是什么? -
@JeroenVannevel 它没有被弃用,它依赖于平台,并且可能会或可能不会根据各种因素工作。根据文档,
Files#move似乎更健壮。 -
@JeroenVannevel 您应该将答案作为答案发布(您可以回答自己的问题)。
标签: java file formatting rename