我想删除 Windows 在文件名中添加的空格。 我运行以下代码来重命名测试目录中的所有文件。结果:所有文件都消失了。 我很困惑为什么。
import java.io.*;
public class FileRenamer {
public static void main(String[] args) {
for (File file: (new File("O:\\test0")).listFiles())
file.renameTo(new File(file.getName().replaceAll("\\s","")));
System.exit(0);
}
}
最佳答案
TL;DR:您正在移动文件。
您列出目录“O:\\test0
”中的文件。
对于每个这样的文件,您创建一个字符串
:
file.getName().replaceAll("\\s","")
你最终会得到:
new File("someFileName")
所以您已调用:
file.renameTo(new File("someFileName"))
现在,someFileName
不是绝对路径;而是一个相对路径。因此,您已从 O:\\test0\\some File Name
移动到 someFileName
,其中 someFileName
位于程序的目录中。
附注无需调用System.exit(0)
。
关于java - 为什么 File 方法 rename() 会删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328590/