您的位置:首页 > 其它

File(遍历一个目录下的所有文件)

2016-12-13 10:28 363 查看
package com.hz.test;

import java.io.File;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Test {

public static void main(String[] args) {
File file = new File("E:\\相册");
long start = System.currentTimeMillis();
recursion(file);
long end = System.currentTimeMillis();
System.out.println("时间差:"+(end-start));
}
/*
* 1、先将file放入容器
* 2、从容器中获取当前位置的数,判断是否是目录
*      2.1、如果是目录,则将目录下的所有文件,放入容器
*      2.2、如果是文件,则输出
* 3、将下标移动到下一个位置,重复做2号操作
* 4、直到将容器中所有的数据全部输出为止
*/
//  public static void recursion(File file) {
//
//      List<File> list = new ArrayList<File>();
//
//      list.add(file);
//
//      int sum = 0;
//      for (int i = 0; i <list.size(); i++) {
//
//          File file2 = list.get(i);
//          if(file2.isDirectory()){
//              try {
//                  List<File> list2 = Arrays.asList(file2.listFiles());
//                  list.addAll(list2);
////                    System.out.println(list);
//              } catch (Exception e) {
//                  e.printStackTrace();
//              }
//
//          }else{
//
//              System.out.println(file2.getAbsolutePath());
//              sum++;
//
//          }
//      }
//      System.out.println("总文件数:"+sum);
//
//
//  }
//优化方法(广搜)
public static void recursion(File file) {

List<File> list = new LinkedList<File>();
list.add(file);
int sum = 0;
for(int i=0;i<list.size();){

File file2 = list.get(0);
if(file2.isDirectory()){
try {
List<File> list2 = Arrays.asList(file2.listFiles());
list.addAll(list2);
} catch (Exception e) {
e.printStackTrace();
}

}else{

System.out.println(file2.getAbsolutePath());
sum++;

}
list.remove(0);
}
System.out.println("总文件数:"+sum);

}
//递归方法
//  public static void recursion(File file) {
//
//      List<File> list = Arrays.asList(file.listFiles());
//      for (File file2 : list) {
//          if(file2.isDirectory()){
//              recursion(file2);
//          }
//          System.out.println(file2);
//      }
//  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  遍历 File