JAVA .IO。
列出指定文件夹的所有文件。
前要:
1、了解File类
2、了解 listFiles()方法
3、了解 isDirectory()方法
4、了解递归函数.
问题分析:
列出文件夹中的所有内容,同时,文件夹中可能还有文件夹,再然后文件夹中又会又文件夹,直到文件夹里不是目录(不是文件夹)即可
输出了。
根据上面的分析,很明显,这是可以用递归来实现。
思路分析:
递归的出口为:不是目录,即用File类里面的 ! file.isDirectory();
循环,递归体,镜中镜的相似点为:is.Directory(), File f[] = file.listFiles();,
但是怎么样对文件夹进行循环调用呢?
如果listFiles列出的对象不为空,则继续调用自身,判断是不是为文件夹~
if(f != null){
for(int i = 0;i<f.length;i++){
对f[i]对象继续调用;
}
当列出的都不是文件夹的时候,调用停止,列出文件
syso file
代码实现
public class Test{
public static void t(File file) {
if(file!=null) {
if(file.isDirectory()) {
File c[] = file.listFiles();
if(c != null) {
for (int i = 0; i < c.length; i++) {
t(c[i]);
}
}
}else {
System.out.println(file);
}
}
}
public static void main(String[] args) {
File f = new File("E:"+File.separator+"优快云");
t(f);
}
}
总结
***这个经典的内容体现了递归的重要性与强大,也体现了实际应用与基础知识密切相关。
所以我们不但要系统掌握好基础知识,也要对知识进行多加练习***