1. 想法来源
中学的时候看见同学玩手机,将手机里面创建一个多层文件夹,把自己的一些小秘密藏在文件夹里面,这样别人就不能轻易翻到,但是如果说要建立很多层,手动创建很麻烦,最近java学到了io流,再加上之前学的递归,觉得可以通过递归来实现;
这个过程类似与经典兔子问题(又名斐波那契数列),第一层文件里面有0-9共10个目录,我个人称为第一层,然后0-9的每个目录下面又有0-9个目录,称为第二层,依次类推;
第一次写的代码如下,很明显,程序不会中断,而且生成的目录也全是0;
public class Test5 {
public static void main(String[]args){
File file = new File("f:/test");
Test5 test5 = new Test5();
test5.fun(file);
}
void fun(File file){
for (int i = 0; i < 10; i++) {
File file1 = new File(file, "" + i);
file1.mkdir();
for (int j = 0; j < 10; j++) {
File file2 = new File(file1,""+j);
file2.mkdir(File2);
}
}
}
}
更改过后,增加了一个层数的变量,最终得到了想要的结果
package Test5;
import java.io.File;
public class Test5 {
public static void main(String[]args){
File path = new File("f:/test");
Test5 test5 = new Test5();
test5.fun(path,3);
}
void fun(File path,int level){
if(level<=0) return;
for (int i = 0; i < 10; i++) {
File file = new File(path,""+i);
file.mkdir();
fun(file,level-1);
}
}
}