TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
java遍历文件夹的2种方法: 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());
- }
- }
- }
- }
-
- 结论:经过测试,使用递归的方法B性能相对好一些。
-
-
-
复制代码
源码下载:http://file.javaxxz.com/2014/10/30/235741687.zip |
|