首页 > 开发 > Java > 正文

JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)

2024-07-13 10:03:20
字体:
来源:转载
供稿:网友

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

1.不使用递归的方法调用.

java;">public void traverseFolder1(String path) {    int fileNum = 0, folderNum = 0;    File file = new File(path);    if (file.exists()) {      LinkedList<File> list = new LinkedList<File>();      File[] files = file.listFiles();      for (File file2 : files) {        if (file2.isDirectory()) {          System.out.println("文件夹:" + file2.getAbsolutePath());          list.add(file2);          fileNum++;        } else {          System.out.println("文件:" + file2.getAbsolutePath());          folderNum++;        }      }      File temp_file;      while (!list.isEmpty()) {        temp_file = list.removeFirst();        files = temp_file.listFiles();        for (File file2 : files) {          if (file2.isDirectory()) {            System.out.println("文件夹:" + file2.getAbsolutePath());            list.add(file2);            fileNum++;          } else {            System.out.println("文件:" + file2.getAbsolutePath());            folderNum++;          }        }      }    } else {      System.out.println("文件不存在!");    }    System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum);  }

2.使用递归的方法调用.

public void traverseFolder2(String path) {    File file = new File(path);    if (file.exists()) {      File[] files = file.listFiles();      if (files.length == 0) {        System.out.println("文件夹是空的!");        return;      } else {        for (File file2 : files) {          if (file2.isDirectory()) {            System.out.println("文件夹:" + file2.getAbsolutePath());            traverseFolder2(file2.getAbsolutePath());          } else {            System.out.println("文件:" + file2.getAbsolutePath());          }        }      }    } else {      System.out.println("文件不存在!");    }  }

3,

public static List<File> getFileList(String strPath) {    File dir = new File(strPath);    File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组    if (files != null) {      for (int i = 0; i < files.length; i++) {        String fileName = files[i].getName();        if (files[i].isDirectory()) { // 判断是文件还是文件夹          getFileList(files[i].getAbsolutePath()); // 获取文件绝对路径        } else if (fileName.endsWith("avi")) { // 判断文件名是否以.avi结尾          String strFileName = files[i].getAbsolutePath();          System.out.println("---" + strFileName);          filelist.add(files[i]);        } else {          continue;        }      }    }    return filelist;  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表