遍历文件夹
package Tools;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileUtils {
/**
*
*這是一個工具類,目的是為了輸入任何目錄,遍歷其下面的所有文件和文件夾
*/
//獲取文件夾的所有文件
static boolean a = true;
public static List getAllFiles(String dir){
//創建一個集合來保存遍歷的File
List<File>files=new ArrayList<>();
File file=new File(dir);//文件夾必須存在
if(file.exists()&&file.isDirectory()){//文件夾存在,并且是文件夾
//循環比遍歷
fileRound(file,files);//定義的方法,把遍歷的結果放到集合里
}
return files;//返回list的集合
}
/**
* fileround 是一個遞歸方法,不斷調用本身
*/
private static void fileRound(File file,List<File> files){
File[] fillAll=file.listFiles();//返回的是文件夾和 文件夾的路徑,返回File對象
if(fillAll==null){//如果文件夾是空的
System.out.println("_____________________");
return;//跳出方法,后面的不會執行
}
System.out.println("111111111111");
//如果文件夾有內容,需要去遍歷里賣弄所有的文件和文件夾
for(File file2:fillAll){
files.add(file2);
fileRound(file2,files);
System.out.println("232423423");
}
System.out.println("_____________________");
}
}
這是一個關于輸入一個文件夾,遍歷里面所有的文件的小工具,這里面是fileRound的功能,他是不斷的回調判斷,listFile它返回的是一個路徑,只要是文件夾,不論里面是否有內容,它的返回值都不為空,當里面沒內容時for循環就不會遍歷,直接跳過。
轉載于:https://www.cnblogs.com/liuchunyong/p/10388294.html
總結
- 上一篇: PHP面试常考内容之面向对象(3)
- 下一篇: C++关键字:重学记录