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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用递归获取一个文件夹内的所有文件存放在一个文件数组中?相关的知识,希望对你有一定的参考价值。

这个文件夹中可能还有其他文件夹 ,文件夹内可能还有文件夹,这个文件夹可能还有文件。希望哪位高手给出代码,谢谢了。

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;

参考技术A 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;

以上是关于如何用递归获取一个文件夹内的所有文件存放在一个文件数组中?的主要内容,如果未能解决你的问题,请参考以下文章

如何用sql语句将一个文件夹下的所有txt文件导入到数据库中急!在线等

shell 中如何用for语句同时搜索两个文件夹内的所有文件,并进行文件比较,急用,希望高手解答,谢谢

如何用js遍历本地文件

如何用CMD提取一个文件路径的文件名?并赋值 高分送上

如何用CMD提取一个文件路径的文件名?并赋值 高分送上

如何用SAS读取压缩包内的文件或是自动解压文件