java遍历文件夹
发布网友
发布时间:2022-05-24 11:47
我来回答
共3个回答
热心网友
时间:2023-10-12 09:21
主要应用递归算法
/**
*
*/
package com.dianziermu.io;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 遍历文件夹及其下面的所有文件夹,递归
*
* @author 点子二木
* @date 2009-6-10
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class FolderIO {
static List<File> gblFoldList = new ArrayList();
/**
* @param args
*/
public static void main(String[] args) {
String path = "c:\\Program Files";// 将要搜索目录路径
System.out.println("获取"+path + "目录下所有文件夹,正在加载......");
readFolder(path);
printFolder();
}
/**
* 获取文件对象
*
* @param path
*/
private static void readFolder(String path) {
File dir = new File(path);// 建立代表Sub目录的File对象,并得到它的一个引用
if (dir.exists()) {// 检查目录是否存在
File[] dirList = dir.listFiles();// 获取该目录下所有文件和文件夹
for (int index = 0; index < dirList.length; index++) {
if (dirList[index].isDirectory()) {// 如果是文件夹
// System.out.println(dirList[index]);
gblFoldList.add(dirList[index]);
readFolder(dirList[index].getPath());// 注意:此处递归
}
}
} else {
System.out.println("该文件夹不存在");
}
}
/**
* 打印文件夹对象
*/
private static void printFolder() {
for (int index = 0; index < gblFoldList.size(); index++) {
System.out.println(gblFoldList.get(index));
}
}
}
热心网友
时间:2023-10-12 09:22
采用广度和深度搜索。(本人不建议用递归 空间消耗太大!)
比如把起开始收缩目录放进容器(这个自己要考虑 那种容器最合适)
依次不断循环横向和纵向进行广度和深度收索目录!数据结构学的好的这个应该不难
有问题可以hi我。20分好太少了!
热心网友
时间:2023-10-12 09:22
你先用listFiles()方法取得文件夹下面的所有file,放进FIEL[]里,然后再存到LIST中,再迭代一下就可以把文件逐个取出