以下作品的代碼,但我的問題是,控制檯輸出正確顯示例如:刪除部分文件名的文件夾中
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