在学习流File类后,我们可以让系统遍历输出文件夹下面的文件,这里要用到递归方法,所谓递归就像是剥洋葱,一层一层剥,先打印第一级文件夹下面的文件,如果还有第二季文件夹,那么继续递归方法,一直到文件夹最末端,即全是纯文件为止;
package A_January;
import java.io.File;
/**
* Created by Administrator on 17-1-18.
*/
public class FileTest3 {
public static void main(String[] args) {
File file=new File("E:\\☆日韩电影");
getAllFiles(file);
}
//自定义getAllFiles方法:
public static void getAllFiles(File file){//接收的是文件形式;
System.out.println(file.getAbsolutePath());//打印绝对路径;
if (file.isDirectory()) {
//如果file是文件夹,就把file这个文件夹里的所有文件都放到下文的files[]数组中;
File files[]=file.listFiles();//把文件夹里的东西都放到数组里面;
//把files数组中的文件(包含数据文件和文件夹)一个一个遍历给出;
for (File f : files) {
if (f.isFile()){
System.out.println(f.getName());
}else{
//否则回到方法再次执行,递归下去;
//递归就是剥洋葱,一层一层往下剥;
getAllFiles(f);
}
}
}
}
}
注意:
1.首先要给出遍历文件夹的目录,用File类来创建对象;
2.调用自定义方法getAllFiles();
3.获取绝对路径(getAbsolutePath()不是必须要的,与核心目标无关);
4.在自定义方法中:进行判断,如果是文件夹,就把该第一级文件夹下的文件都放到数组中,然后用递归算法来遍历并输出(输出的是文件名,getName());
(递归方法:循环中,方法不断调用本身,找到不满足条件项(或满足条件项),直到所有文件都达到目标,跳出循环;)这是该程序的核心;
5.更改目录可以遍历不同文件夹下的文件;
而楼主该文件夹下面的文件实际图如下:
本文介绍了一个使用Java File类遍历指定文件夹及其子文件夹中的所有文件的方法,通过递归方式实现,适用于文件管理系统等场景。
1085

被折叠的 条评论
为什么被折叠?



