我正在尝试检查目录是否存在,如果发生这种情况,我想给它另一个数字,例如,如果“folderX”存在,我想创建一个名为“FolderX1”的新目录,目前我'我只能执行一次此操作,因为我将其放在这样的 if/else 语句中:
File fa = new File(folder);
if(!fa.exists()){
this.folder = folder;
}else{
this.folder = folder+=1;
}
我想递归地执行此操作,如果程序检测到“folderX”存在,它应该跳转并检查其他文件夹(folderX、FolderX1、FolderX2 等),直到找到一个可以创建的文件夹,但我不知道如何做吧。
最佳答案
基本上,您需要某种循环来确定递增文件夹是否仍然存在......
File makeMe = new File(folder);
int index = 0;
String master = folder;
while (makeMe.exists()) {
folder = master + (++index);
makeMe = new File(folder);
}
如果您担心创建无限循环,您可以设置最大范围...
int maxRange = 100;
File makeMe = new File(folder);
int index = 0;
String master = folder;
while (makeMe.exists() && index < maxRange) {
makeMe = new File(master + (++index));
}
if (index > maxRange) { // || makeMe.exists()
throw new IOException("Could not find free directory");
} else {
// All happy unicorns...
}
关于Java 自动生成目录(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17081038/