JAVA遍历文件夹下的所有文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA遍历⽂件夹下的所有⽂件
JAVA遍历⽂件下的所有⽂件和⽂件夹
@Test
public void traverseFolder1( ) {
String path = "D:\\TEST";
int fileNum = 0;
int folderNum = 0;
int foldeNum = 0;
File file = new File(path);
if (file.exists()) {
LinkedList<File> list = new LinkedList<File>();
//list()⽅法是返回某个⽬录下的所有⽂件和⽬录的⽂件名,返回的是String数组
//listFiles()⽅法是返回某个⽬录下所有⽂件和⽬录的绝对路径,返回的是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();//删除第⼀个元素,也就是找到数组中的第⼀个元素返回⼀个File去判断,说⽩了就是循环分别找到每个⽂件下⾯对应的是⽂件还是⽂件夹,如果循环下⼀级还是⽂件夹则继续循环直到结束(思想就是⼀层⼀层去判断查找知道找到所有的⽂件和⽂件夹,不明⽩看下⾯的例⼦。
)
files = temp_file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {//如果是个⽬录(⽂件夹)则返回true
System.err.println("⽂件夹:" + file2.getAbsolutePath());
list.add(file2);
folderNum++;
} else {//输出⽂件
System.out.println("⽂件:" + file2.getAbsolutePath());//返回⽂件的完整路径。
fileNum++;
}
}
}
} else {
System.out.println("⽂件不存在!");
}
System.out.println("⽂件夹共有:" + folderNum + ",⽂件共有:" + fileNum);
}
例⼦:
LinkedList list=new LinkedList();
list.add("a");
list.add(1);
list.add('b');
String kk=(String) list.removeFirst(); // (String) 这代表强制转换原理同上
char k=(char) list.removeLast();//删除最后⼀个元素
System.out.println(kk);
System.out.println(k);
}
}
结果为 a b
//使⽤递归
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("⽂件不存在!");
}
}。