File.renameTo()没有任何效果

Jer*_*vel 3 java formatting rename file

我希望能够重命名文件夹列表以删除不需要的字符(例如,点和双空格必须成为单个空格).

单击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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*vel 7

对于未来的浏览器:这是通过Assylias的评论修复的.您将在下面找到修复它的最终代码.

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("  ", " ");
            Path source = currentFile.toPath();
            try {
                Files.move(source, source.resolveSibling(formattedName));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)