android使用File类遍历文件夹、读取文件夹
1、有时候,我们需要读取一个文件夹中所有的文件。
2、首先,在D盘创建了一个文件夹alsp,然后在这个文件夹下创建多个文件

3、代码如下图所示:
File sceneFile = new File("D:\\alsp");
File[] files = sceneFile.listFiles();
if (null != files) {
for (int i = 0; i < files.length; i++) {
System.out.println("文件夹下的文件:" + files[i].getName());
}
}

4、解释下上述代码:
首先,通过File sceneFile = new File("D:\\alsp");创建一个File对象sceneFile ,指向目录D:/alsp
然后通过sceneFile.listFiles()获取该目录下所有的文件及目录的绝对路径,该方法和list不同,list返回的是String数组,而listFiles返回的是File数组,所以,这里通过一个File[] files创建一个File类型的数组,接收返回值。
然后,通过一个for循环,将files数组中的所有的值全部取出,并打印他们的名字。

1、有时候,我们需要遍历一个文件夹下所有的文件及子文件夹里的文件。
2、这个例子需要用到上面说的读取文件夹的操作。因为要先读取文件夹里的所有内容,才能进一步进行遍历
3、代码如下:
void listDirectory(File dir){
if (!dir.exists()){
System.out.println("目录不存在");
return;
}
if (!dir.isDirectory()){
System.out.println("不是一个目录");
return;
}
File files[] = dir.listFiles();
if (files!=null && files.length >0){
for (File file : files){
if (file.isDirectory()){
listDirectory(file);
}
else{
System.out.println(file);
}
}
}
}

4、解析上面的这个listDirectory方法,其用到了递归的概念,就是自己调自己,直到条件不满足。首先获取目录下所有的文件,然后判断是否有目录,如果有目录再递归一遍,直到没有目录为止
5、执行结果如下,可以看到,列出了所有的文件及子文件夹下的文件
