我有一堆文件包含我要在其中替换的字符。例如,如果一个文件被调用" test!file.txt"系统应该打印出来,然后将文件名改为" test_file.txt"。我不想将整个文件重命名为"!"。并且有很多文件,所以重命名只有一个单独的工作。我希望程序能够改变所有的"!"在所有文件名中为" _"。这是我的代码,但它只打印文件名并且不替换它。
import java.io.*;
class Files {
public static void main(String[] args) {
File folder = new File(".");
String replaceThis = "!";
for (File file : folder.listFiles()) {
if (file.getName().contains(replaceThis)) {
System.out.println(file.getName());
file.getName().replace(replaceThis, "_");
}
}
}
}
答案 0 :(得分:-1)
查看java.io.File中的renameTo()方法。
此外,由于Strings被设计为不可变的,因此您实际上并未更改代码中的任何文件名。 String::replace()
返回一个带有替换的新String,它不会更改调用它的String。
答案 1 :(得分:-1)
修改代码的这一部分:
if (file.getName().contains(replaceThis)) {
System.out.println(file.getName());
file.getName().replace(replaceThis, "_");
}
到
name = file.getName();
newFile = //your logic for new file name
File file2 = new File(newFile);
file.renameTo(file2);