我需要通过在文件名中用-
替换_
来重命名文件。
假设文件名是ab-9.xml
,则应为ab_9.xml
。
renameTo()
对我不起作用。还有其他办法吗?这是我的代码:
File replaceCheracter(File file) {
File oldPath = new File(file.getPath())
String filePath = file.getPath()
if(filePath.contains("-")){
String newFilePath = filePath.replace("-", "_")
if(oldPath.renameTo(newFilePath)) {
System.out.println("renamed");
} else {
System.out.println("Error");
}
}
return oldPath
}
答案 0 :(得分:3)
您应该考虑使用java.nio.file包:
final Path file = Paths.get("path\\to\\your-file.txt");
Files.move(file, file.resolveSibling(file.getFileName().toString().replace("-", "_")));
使用非常方便的函数Path#resolveSibling()作为Files#move()的第二个参数。
说明:
Path#resolveSibling()
获取调用它的Path
对象的目录路径,并交换所提供参数的最后一部分(实际的文件名)(新的,在这种情况下修改了文件名)。将此行为用作Files#move()
的第二个参数将导致源目录和目标目录相同的移动,因此它只重命名文件。
有关详细信息,请参阅The Java Tutorials - File I/O。
答案 1 :(得分:0)
renameTo
方法接受File作为参数而不是String
更改oldPath.renameTo(newFilePath)
oldPath.renameTo(new File(newFilePath))