递归找具体某一个文件和某一类文件
作者:互联网
递归找具体某一个文件和某一类文件
题目一描述:
找到D盘中,"idea64.exe"这个文件:
package com.test.test01;
import java.io.File;
import java.util.Arrays;
public class Test05 {
public static void main(String[] args) {
//找到D盘,"idea64.exe"这个文件
File dir = new File("D:/develop");
searchFile(dir,"idea64.exe");
}
private static void searchFile(File dir, String fileName) {
//对传入的参数进行非空判断和是否为文件夹
if(dir!=null && dir.isDirectory()){
//获取此目录下所有文件对象
File[] files = dir.listFiles();
// System.out.println(Arrays.toString(files));
//判断此目录下有文件对象
if(files!=null&&files.length>0){
//遍历
for (File file : files) {
//判断是文件还是文件夹
if(file.isFile()){
//是文件
//判断是否是"idea64.exe"
if(file.getName().equals(fileName)){
//找到目标文件,输出打印
System.out.println(file.getAbsolutePath());
//并且退出
System.exit(0);
}
} else {
//是文件夹
//继续进入本方法,进入文件夹寻找文件
searchFile(file,fileName);
}
}
}
}else {
System.out.println("参数错误,请重新编写!!");
}
}
}
/*
打印结果:D:\develop\IDEA2018.2.3\bin\idea64.exe
*/
题目二描述:
找出"E:/abc"目录下所有的java文件
package com.test.test01;
import java.io.File;
//找出 E:/abc目录下 所有的.java文件
public class Test06 {
public static void main(String[] args) {
findJavaFile(new File("E:/abc"));
}
private static void findJavaFile(File dir) {
//先遍历目录,并判断是否有文件,有文件判断是否是.java文件
File[] files = dir.listFiles();
if(files!=null){
//遍历
for (File file : files) {
if(file.isFile()){
//是文件
//防止有大写的后缀,将所有文件名转换为小写
// String name = file.getName().toUpperCase();//这个方法是转大写
String name = file.getName().toLowerCase();
if(name.endsWith(".java")){
//找到了.java文件,输出打印
System.out.println("file = " + file);
}
}else {
//说明是文件夹,继续对这个目录进行遍历并打印
findJavaFile(file);
}
}
} else {
System.out.println("非法目录!!!");
}
}
}
/*
打印结果:
file = E:\abc\code\demo01\Demo03.java
file = E:\abc\code\demo01\Demo04.java
file = E:\abc\code\Demo01.java
file = E:\abc\code\Demo02.java
file = E:\abc\HelloWorld.java
*/
标签:文件,abc,java,file,递归,File,一类,dir 来源: https://www.cnblogs.com/liqiliang1437/p/13115857.html