如何用递归获取一个文件夹内的所有文件存放在一个文件数组中?

这个文件夹中可能还有其他文件夹,文件夹内可能还有文件夹,这个文件夹可能还有文件。希望哪位高手给出代码,谢谢了。... 这个文件夹中可能还有其他文件夹 ,文件夹内可能还有文件夹,这个文件夹可能还有文件。希望哪位高手给出代码,谢谢了。 展开
 我来答
百度网友f409b5b
推荐于2017-11-25 · 超过14用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:35.6万
展开全部
public static void main(String[] args) throws Exception {
File dir = new File("F:\\jk\\yy-5");
List<File> files = getAllFiles(dir);
//转换成数组
File[] fileArr = new File[]{};
fileArr = files.toArray(fileArr);
for(File file:fileArr){
System.out.println(file);
}

}

public static List<File> getAllFiles(File dir) throws Exception{
List<File> files = new ArrayList<File>();
if(dir.isDirectory()){//如果是目录
File[] documentArr = dir.listFiles();//取目录下的所有文件
if(documentArr!=null){
//遍历目录下所有文件 执行递归
for(File document:documentArr){
files.addAll(getAllFiles(document));
}
}
}else{//如果是文件 加入到list中
files.add(dir);
}
return files;
}
fujiyuer
推荐于2018-03-14 · 超过32用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:50.2万
展开全部
ArrayList<String> filelist=refreshFileList("路径",new ArrayList<String>());

public ArrayList<String> refreshFileList(String strPath,ArrayList<String> filelist) {
//遍历指定目录
File dir = new File(strPath);
File[] files = dir.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
filelist=refreshFileList(files[i].getAbsolutePath(),filelist);
}
else {
filelist.add(files[i].getAbsolutePath());
}
}
}
return filelist;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式