以下作品的代码,但我的问题是,控制台输出正确显示例如:删除部分文件名的文件夹中
3-M-ALABAMA-SUIQUARTER2
3-M-ALABAMA-SUIQUARTER2
3-M-ALABAMAW-22017
3-M-ALABAMAW-22017
上面显示的输出,我的指数为-2017然而,当实际文件文件夹中名称正在更改某些文件名被跳过。例如
原单文件名:3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140
控制台输出:3-M-ALABAMA-SUIQUARTER2
某些文件的文件夹不变:3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140
然而,一些文件夹中的文件有3-M-BATTLECREEKMIW-22017-2017200346-CD619B
有的3-M-ARLINGTONOHLOCALW-2-2017200346-CD61A8
所以我认为java在文件更改时正在进行实际更改的时候会切断哪些内容?你可以帮我吗?
for(File file:filesInDir) {
x++;
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));
}
我甚至使用了substring方法String name = file.getName()。substring(0,20); 仍然它做同样的事情并非文件夹中的所有文件名都被改变 – Jonathan
有没有办法让这个过去?在这种情况下,子字符串和索引不适用于我, – Jonathan
您试图实现的目标是从原始文件名中删除-2017xxxx-模式? – assembler