遍历一个文件夹
1.非递归方法
package file;
import java.io.File;
import java.util.LinkedList;
public class Test1File {
public static voidtraverseFolder1(String path) {
int fileNum=0,folderNum=0;
File file=new File(path); //加载一个文件
if (file.exists()) {
LinkedList<File> list=newLinkedList<File>();
File[] files=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++;
}
}
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+"文件");
}
public static void main(String[] args) {
traverseFolder1("D:\\360Downloads");
}
}
2.递归方法:
package file;
import java.io.File;
public class Test2File {
public static void traverseFolder2(String path) {
File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (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 static void main(String[] args) {
traverseFolder2("D:\\360Downloads");
}
}
//本内容参考于网上资料。