当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Java中使用遍历文件夹的2种方法
发布时间:2011/3/18 10:37:12 来源:城市学习网 编辑:ziteng
  A.不使用递归:
  import java.io.File;
  import java.util.LinkedList;
  public class FileSystem {
  public static void main(String[] args) {
  long a = System.currentTimeMillis();
  LinkedList list = new LinkedList();
  File dir = new File("c:\\java\\");
  File file[] = dir.listFiles();
  for (int i = 0; i < file.length; i++) {
  if (file[i].isDirectory())
  list.add(file[i]);
  else
  System.out.println(file[i].getAbsolutePath());
  }
  File tmp;
  while (!list.isEmpty()) {
  tmp = list.removeFirst();
  if (tmp.isDirectory()) {
  file = tmp.listFiles();
  if (file == null)
  continue;
  for (int i = 0; i < file.length; i++) {
  if (file[i].isDirectory())
  list.add(file[i]);
  else
  System.out.println(file[i].getAbsolutePath());
  }
  } else {
  System.out.println(tmp.getAbsolutePath());
  }
  }
  System.out.println(System.currentTimeMillis() - a);
  }
  }
  B.使用递归:
  import java.io.File;
  import java.util.ArrayList;
  public class FileSystem1 {
  private static ArrayList filelist = new ArrayList();
  public static void main(String[] args) {
  long a = System.currentTimeMillis();
  refreshFileList("c:\\java");
  System.out.println(System.currentTimeMillis() - a);
  }
  public static void refreshFileList(String strPath) {
  File dir = new File(strPath);
  File[] files = dir.listFiles();
  if (files == null)
  return;
  for (int i = 0; i < files.length; i++) {
  if (files[i].isDirectory()) {
  refreshFileList(files[i].getAbsolutePath());
  } else {
  String strFileName = files[i].getAbsolutePath().toLowerCase();
  System.out.println("---"+strFileName);
  filelist.add(files[i].getAbsolutePath());
  }
  }
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved