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

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

可以先读取出文件夹内的所皮裤枯有文件,读出来之后,放到一个文件中,然后再

用数据取出来。存到数组中,public

class

IOtest{

public

static

void

main(String

args){

String

str

=

"燃洞c:\\"//假设纯笑要读c盘中的所有文件,也可以自己写一个文件路径

File

f

=

new

File(str)

fun(f)

}

public

static

void

fun(File

f){

if(f.idDirectory()){

File

file

=

f.listFile()//列出所有目录

try{

for(int

i=0

i<file.length

i++){

fun(file)

}

}carch(Exception

e){

}else{

System.out.print(f)

}

}

}}上面这段代码是把目录下的文件全部列出来,你可以再写一个读取的

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12270636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存