一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2017-02-28 编辑:简简单单 来源:一聚教程网

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

 

 代码如下复制代码

publicvoidtraverseFolder1(String path) {

    intfileNum =0, folderNum =0;

    File file =newFile(path);

    if(file.exists()) {

      LinkedListlist =newLinkedList();

      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.使用递归的方法调用.

 

 代码如下复制代码

publicvoidtraverseFolder2(String path) {

 

    File file =newFile(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,

 

 代码如下复制代码

publicstaticListgetFileList(String strPath) {

    File dir =newFile(strPath);

    File[] files = dir.listFiles();// 该文件目录下文件全部放入数组

    if(files !=null) {

      for(inti =0; i < files.length; i++) {

        String fileName = files[i].getName();

        if(files[i].isDirectory()) {// 判断是文件还是文件夹

          getFileList(files[i].getAbsolutePath());// 获取文件绝对路径

        }elseif(fileName.endsWith("avi")) {// 判断文件名是否以.avi结尾

          String strFileName = files[i].getAbsolutePath();

          System.out.println("---"+ strFileName);

          filelist.add(files[i]);

        }else{

          continue;

        }

      }

 

    }

    returnfilelist;

  }

 

热门栏目