本帖最后由 波涛 于 2014-5-21 21:39 编辑
好的,假如D:\java0217文件中有1.mp3 2.mp3 3.mp3三个文件和一个叫music的文件夹, 它的里面有一个4.mp3文件。
java0217
|----music
| |---4.mp3
|----1.mp3
|----2.mp3
|----3.mp3
主函数中调用showDir(dir)时,转到第一层showDir(File dir)方法;
第一层showDir方法:
参数java0207的字符串形式首先被打印出来;
File[] files=dir.listFiles(); //扫描java0207文件夹中的内容,以文件对象的形式保存到files名称的File数组中,
此时files数组中的内容有music, 1.mp3, 2.mp3 , 3.mp3 这四个File对象。
下面for循环开始依次开始遍历这四个对象:
首先第一个music是一个文件夹,满足if条件,程序跳转到第二层的showDir方法
第二层showDir方法:
首先打印传递进来的文件对象文本形式名称music; 然后扫描music文件夹中的内容,保存到files数组中(此时files数组中
有一个元素4.mp3这个File对象);
第二层继续遍历第其中第一个4.mp3文件,是一个文件,不是文件夹,所以进入false语句块,打印文件名称即可。
本层次递归结束,返回第一层;
第一层继续遍历第二个1.mp3文件,是一个文件,不是文件夹,所以进入false语句块,打印文件名称即可。
第一层继续遍历第三个2.mp3文件,是一个文件,不是文件夹,所以进入false语句块,打印文件名称即可。
第一层继续遍历第四个3.mp3文件,是一个文件,不是文件夹,所以进入false语句块,打印文件名称即可。
所有调用语句结束。
|