从目录中的所有文件名中删除空格 - Java
Remove whitespace from all filenames in directory - Java
我有图像目录,我想通过删除名称中的所有空格来重命名文件。
假设我有一个名为“f il ena me .png”的文件(我计划检查目录中的所有文件名)。我如何删除所有空格并重命名图像,以便正确的文件名(对于这种特定情况)是 "filename.png".
到目前为止,我已经尝试了以下代码,它实际上删除了目录中的图像(我目前正在目录中的一张图像上对其进行测试)。
public static void removeWhiteSpace (File IBFolder) {
// For clarification:
// File IBFolder = new File("path/containing/images/folder/here");
String oldName;
String newName;
String temp;
for (File old : IBFolder.listFiles()) {
oldName = old.getName();
temp = oldName.replaceAll(" ", "");
// I have also tried:
// temp = oldName.replaceAll("//s", "");
temp = temp.split(".png")[0];
newName = temp + ".png";
System.out.println(newName);
old.renameTo(new File(newName));
}
}
我认为它不会删除图像,而是将它们移动到您当前的工作目录并将其重命名为 newName
,但是由于 newName
缺少路径信息,它将重命名 /将其移动到“./”(从您 运行 您的程序的任何位置)。
我认为你在这些行中有错误:
temp = temp.split(".png")[0];
newName = temp + ".png";
“。”是一个通配符,假设您的文件名为 "some png.png",newName
将是 "som.png",因为 "some png.png".replaceAll(" ", "").split(". png") 结果为 "som".
如果出于任何原因您需要 String.split() 方法,请正确引用“.”:
temp = temp.split("\.png")[0];
忽略命名约定(我打算稍后修复)这是我最终确定的解决方案。
public static void removeWhiteSpace (File IBFolder) {
// For clarification:
// File IBFolder = new File("path/containing/images/folder/here");
String oldName;
String newName;
for (File old : IBFolder.listFiles()) {
oldName = old.getName();
if (!oldName.contains(" ")) continue;
newName = oldName.replaceAll("\s", "");
// or the following code should work, not sure which is more efficient
// newName = oldName.replaceAll(" ", "");
old.renameTo(new File(IBFolder + "/" + newName));
}
}
我有图像目录,我想通过删除名称中的所有空格来重命名文件。
假设我有一个名为“f il ena me .png”的文件(我计划检查目录中的所有文件名)。我如何删除所有空格并重命名图像,以便正确的文件名(对于这种特定情况)是 "filename.png".
到目前为止,我已经尝试了以下代码,它实际上删除了目录中的图像(我目前正在目录中的一张图像上对其进行测试)。
public static void removeWhiteSpace (File IBFolder) {
// For clarification:
// File IBFolder = new File("path/containing/images/folder/here");
String oldName;
String newName;
String temp;
for (File old : IBFolder.listFiles()) {
oldName = old.getName();
temp = oldName.replaceAll(" ", "");
// I have also tried:
// temp = oldName.replaceAll("//s", "");
temp = temp.split(".png")[0];
newName = temp + ".png";
System.out.println(newName);
old.renameTo(new File(newName));
}
}
我认为它不会删除图像,而是将它们移动到您当前的工作目录并将其重命名为 newName
,但是由于 newName
缺少路径信息,它将重命名 /将其移动到“./”(从您 运行 您的程序的任何位置)。
我认为你在这些行中有错误:
temp = temp.split(".png")[0];
newName = temp + ".png";
“。”是一个通配符,假设您的文件名为 "some png.png",newName
将是 "som.png",因为 "some png.png".replaceAll(" ", "").split(". png") 结果为 "som".
如果出于任何原因您需要 String.split() 方法,请正确引用“.”:
temp = temp.split("\.png")[0];
忽略命名约定(我打算稍后修复)这是我最终确定的解决方案。
public static void removeWhiteSpace (File IBFolder) {
// For clarification:
// File IBFolder = new File("path/containing/images/folder/here");
String oldName;
String newName;
for (File old : IBFolder.listFiles()) {
oldName = old.getName();
if (!oldName.contains(" ")) continue;
newName = oldName.replaceAll("\s", "");
// or the following code should work, not sure which is more efficient
// newName = oldName.replaceAll(" ", "");
old.renameTo(new File(IBFolder + "/" + newName));
}
}