【发布时间】:2021-09-13 19:03:18
【问题描述】:
我试图在 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) {
//select random name from a list
Random r = new Random();
String newFolderName = nameList[r.nextInt(nameList.length)];
//save the new path with the name
String completePath = path+"/"+newFolderName;
//create folder
new File(path+"/"+newFolderName).mkdirs();
//increase the deepness level
currentLevel++;
if(currentLevel <= LEVELS) {
for(int i = 0; i < FOLDERS_COUNT; i++) // do it again 3 times
createFolder(completePath);
}
}
如果我忘记提及重要的事情,我表达自己有点困难,请提醒我,我会添加它。
【问题讨论】:
-
如果您使用 if(currentLevel
-
completePath 可以用在立即语句中
-
一个问题是使用
Random可能会引入路径冲突,从而减少创建的目录数量。同样mkdirs返回一个boolean表示成功 - 可能应该检查一下。 -
currentLevel需要是传递给createFolder的参数,而不是全局变量。