`
free_xiang
  • 浏览: 50890 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java遍历文件夹

    博客分类:
  • java
阅读更多

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.isDirectory())

list.add(file);

else

System.out.println(file.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.isDirectory())

list.add(file);

else

System.out.println(file.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.isDirectory()) {

refreshFileList(files.getAbsolutePath());

} else {

String strFileName = files.getAbsolutePath().toLowerCase();

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

filelist.add(files.getAbsolutePath());

} } }}
结论:经过测试,使用递归的方法B性能相对好一些。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics