我試圖在java中創建一種迷宮式的目錄。一個目錄中應該有3個其他的目錄,這些目錄中也應該有3個目錄,直到達到一定的 "深度水平"。我嘗試了一些方法,但我不能讓它正常作業,它確實在一個目錄中創建了3個檔案夾,但不是在其他檔案夾中。
我的java代碼:
private static final int LEVELS = 5;
private static final int FOLDERS_COUNT = 3。
int currentLevel = 0;
public void createFolder(String path) {
//從串列中選擇隨機名稱。
Random r = new Random()。
String newFolderName = nameList[r.nextInt(nameList.length)]。
//save the new path with the name[/span].
String completePath = path "/"/span> newFolderName。
//創建檔案夾。
new File(path "/" newFolderName).mkdirs()。
//增加深度級別。
currentLevel 。
if(currentLevel <= LEVELS) {
for(int i = 0; i < FOLDERS_COUNT; i ) //再做3次
createFolder(completePath)。
}
我的表達有點困難,如果我忘記了一些重要的東西,請提醒我,我會添加它。
uj5u.com熱心網友回復:
如果你達到了最高級別,回傳以停止遞回:
if(currentLevel > LEVELS 1) {
return;
else創建一個檔案夾。檔案夾名稱是級別 索引,而不是從串列中隨機抽取的名稱,以避免由于相同的檔案夾名稱而被覆寫:
else if(currentLevel > 1){
String newFolderName = "level" (currentLevel - 2) "_folder" folderIndex;
path = path "/"/span> newFolderName;
new File(path).mkdirs()。
最后遞回地呼叫createFolders:
for(int i = 1; i <= FOLDERS_COUNT; i )
createFolders(i, currentLevel, path)。
}
完整的代碼:
private static final int LEVELS = 5;
private static final int FOLDERS_COUNT = 3。
public static void main(String[] args) {
createFolders(1, 1 , "C:/parentFolder") 。
}
public static void createFolders(int folderIndex, int currentLevel, String path) {
if(currentLevel > LEVELS 1) {
return;
}else if (currentLevel > 1){
String newFolderName = "level" (currentLevel - 2) "_folder" folderIndex;
path = path "/"/span> newFolderName;
new File(path).mkdirs()。
}
for(int i = 1; i<= FOLDERS_COUNT; i )
createFolders(i, currentLevel, path)。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/310454.html
標籤:
上一篇:在laravel的檔案上傳中,存盤和移動方法有什么區別嗎?
下一篇:回圈和物件初始化問題(C )。
