如何用递归获取一个文件夹内的所有文件存放在一个文件数组中?
这个文件夹中可能还有其他文件夹,文件夹内可能还有文件夹,这个文件夹可能还有文件。希望哪位高手给出代码,谢谢了。...
这个文件夹中可能还有其他文件夹 ,文件夹内可能还有文件夹,这个文件夹可能还有文件。希望哪位高手给出代码,谢谢了。
展开
2个回答
展开全部
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;
}
展开全部
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;
}
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询