列出指定目录下文件或者文件夹,包含子目录中的内容,也就是列出指定目录下所有内容。
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。
也就是函数自身调用自身。这种表现形式或者编程的写法,这就成为递归。
递归要注意:
1.限定条件。
2.要注意递归的次数,尽量避免内存的溢出
import java.io.File;
public class FileDemo3
{
public static void main(String[] args)
{
//File dir =new File("D:\0217java");
//showDir(dir);
//toBin(6);
// int n=getSum(6);
// System.out.println(n);
}
//打印目录方法
public static void showDir(File dir)
{
//打印文件时,先打印目录
System.out.println(dir);
File[] files = dir.listFiles();
for (int i = 0; i <files.length ; i++)
{
//如果是目录,就继续调用目录方法
if (files[i].isDirectory())
showDir(files[i]);
else
System.out.println(files[i]);
}
}
public static void toBin(int num)
{
if(num>0)
{
//递归方法
toBin(num/2);
System.out.print(num%2);
}
}
public static int getSum(int num)
{
if (num ==1)
return 1;
//递归方法
return num+getSum(num-1);
}
}
image.png
网友评论