JAVA遍历一个文件夹中的所有文件---(递归)

JAVA遍历一个文件夹中的所有文件---(递归),第1张

public void traverseFolder2(String path) {

File file = new File(path)     

if (file.exists()) {

File[] files = file.listFiles()         

if (null == files || files.length == 0) {

System.out.println("文件夹是空的!")             

return

} else {              

for (File file2 : files) {                  

if (file2.isDirectory()) {

System.out.println("文件夹:" + file2.getAbsolutePath())

traverseFolder2(file2.getAbsolutePath())

} else {

System.out.println("文件:" + file2.getAbsolutePath())

}

}

}

} else {

System.out.println("文件不存在!")

}

}

扩展资戚举料

public void traverseFolder1(String path) {      

int fileNum = 0, folderNum = 0

File file = new File(path)     

if (file.exists()) {

LinkedList<File>list = new LinkedList<File>()

File[] files = file.listFiles()         

for (File file2 : files) {              

if (file2.isDirectory()) {

System.out.println("文件夹:" + file2.getAbsolutePath())

list.add(file2)                 

foldeNum++

} else {

System.out.println("文件:" + file2.getAbsolutePath())

fileNum++

}

}

File temp_file         

while (!list.isEmpty()) {

temp_file = list.removeFirst()

files = temp_file.listFiles()             

for (File file2 : files) {                  

if (file2.isDirectory()) {

System.out.println("文件夹:" + file2.getAbsolutePath())

list.add(file2)

folderNum++

} else {

System.out.println("文件:" + file2.getAbsolutePath())

fileNum++

}

}

}

} else {

System.out.println("文件不存在!")

}

System.out.println("文件夹共有:" + folderNum + ",文件共笑仔桥有:"碰猛 + fileNum)

}

参考资料:百度百科 Java

使用dir.h库的两个函数即可:findfirst和findnext。

首先调用findfirst函数查找是否有满足条件的某目录文件,如果返回值非0则表示找不到返蔽友皮回。

如果findfirst返回值为0,则循环调用findnext函数,根据返回值,如果为0,结束循环,遍历结束。否则循环调用findnext即可遍历,直到返回非0值即可。

当然,这两个函数需要告洞定义一个结构体来存储函数返回的数据。结构体如下:

struct

ffblk

{

char

ff_reserved[21]

/*DOS保留字*/

char

ff_attrib

/*文件属性*/

int

ff_ftime

/*文件时间*/宏差

int

ff_fdate

/*文件日期*/

long

ff_fsize

/*文件长度*/

char

ff_name[13]

/*文件名*/

}

将结构体中的ff_name[13]显示出来即可。

这是一个递归调用的做法。

你可以做个函数 findAll 参数是 目录名 。

开始遍历,当雹瞎你发现当前是目录。应该再调用函数findall,传入目宏友录,蔽肆槐让函数去遍历子目录。这样函数返回后,你可以继续遍历。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存