Le code ci-dessous fonctionne, mais mon problème est que la sortie de la console affiche correctement par exemple:Suppression des parties de noms de fichiers dans le dossier
3-M-ALABAMA-SUIQUARTER2
3-M-ALABAMA-SUIQUARTER2
3-M-ALABAMAW-22017
3-M-ALABAMAW-22017
La sortie ci-dessus montrent que mon index est -2017 cependant lorsque le fichier réel nom est en cours de modification dans le dossier certains noms de fichiers sont ignorés. Par exemple
nom de fichier Orginal: 3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140
sortie de la console: 3-M-ALABAMA-SUIQUARTER2
Certains des fichiers dans le dossier inchangé: 3-M-ALABAMA-SUIQUARTER2-2017200346-CD6140
Cependant, certains des fichiers dans le dossier ont 3-M-BATTLECREEKMIW-22017-2017200346-CD619B
et certains sont 3-M-ARLINGTONOHLOCALW-2-2017200346-CD61A8
Alors Je pense que Java est confus quant à l'endroit où couper lorsque le changement réel est fait dans l'altération de fichier? Pouvez-vous m'aider?
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));
}
J'ai même utilisé la méthode de sous-chaîne String name = file.getName(). Substring (0,20); et toujours la même chose tous les noms de fichiers dans le dossier ne sont pas changés – Jonathan
Y a-t-il un moyen de dépasser cela? Sous-chaîne et Index-de ne fonctionnent pas pour moi dans ce cas, – Jonathan
ce que vous essayez d'obtenir est de supprimer le motif -2017xxxx du nom de fichier d'origine? – assembler