我是一位嘗試使用文件和目錄的Java初學者。我想創建一個程序,可以在搜索所有子目錄時自動更改文件名,以查找無效的文件名。實際上,我試圖將大量文件加載到服務器上,但服務器設置不允許包含特殊字符的文件名。首先我能寫在那裏,如果我通過了一個目錄路徑它重命名與在該目錄無效名稱的所有文件的代碼:在父目錄和子目錄中更改文件名
公共類重命名{
public static String baseLoc = "C:/Users/Developer/Desktop/.../Data Cleanup";
public static void main(String[] args) {
//LinkedList<File> fileList = new LinkedList<File>();
File obj = new File(baseLoc);
int count = 0;
for (File file: obj.listFiles())
{
String origName = file.getName();
if (origName.contains("&") || origName.contains("#") || origName.contains("@"))
{
System.out.println("Original name: "+origName);
origName = origName.replaceAll("&", "_and_");
origName = origName.replaceAll("@", "_at_");
String newName = origName.replaceAll("#", "_");
System.out.println("New Name: "+newName);
String newLoc = baseLoc+"/"+newName;
File newFile = new File(newLoc);
System.out.println(file.renameTo(newFile));
count++;
}
}
}
}
現在我想要做同樣的事情,但是隻有這一次,我希望即使在子目錄中重新命名所有文件。有人能指導我如何實現這一目標嗎?
您可能需要使用遞歸 - 見http://stackoverflow.com/questions/189094/how-to-scan-a-folder-in-java – zencv