【发布时间】:2017-07-19 03:00:32
【问题描述】:
以下代码 file.renameTo(new File(newPath));不要正确重命名所有文件,它会跳过一些我什至使用过 Files.move(file.toPath(), Paths.get(newPath));但是我在 Eclipse 中收到一个异常错误,说 java.nio.file.FileAlreadyExistsException 我认为这是因为有一组文件在被切断时它们将具有相同的名称有没有办法在 Eclipse 中绕过这个错误或微调 renameTo()?
我也试过 .substring(0,22);, name.replaceFirst("-2017.*", "");和 name.substring(0, file.getName().indexOf("-2017") 结果一样。
示例: 原始文件名:3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140 控制台输出:3-M-ALABAMA-SUIQUARTER2 文件夹中的一些文件未更改:3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140
for(File file:filesInDir) {
String name = file.getName().substring(0, file.getName().indexOf("-2017"));
String newName = name;
System.out.println(newName); // prints prints to file
String newPath = absolutePathOne + "\\" + newName;
file.renameTo(new File(newPath));
or
Files.move(file.toPath(), Paths.get(newPath));
【问题讨论】:
-
这个问题很难读懂,你必须清楚很多。 “当它们被切断时”是什么意思?您尝试重命名的文件的示例是什么?是什么文件阻止它被重命名?
-
一个例子是原始文件名:3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140 控制台输出:3-M-ALABAMA-SUIQUARTER2 文件夹中的一些文件未更改:3-M-ALABAMA-SUIQUARTER2 -2017200346-CD6140
-
我添加了其他信息
-
那么目标文件夹中是否已经有一个新名称的文件?
-
我的意思是我的意思是我试图从 -2017xxx 中取出所有内容