1
package indi.exer.yuluo.IO;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* @author: yuluo
* @createTime: 2022/2/25 21:18
* @File: FindJava.java
* @Software: IntelliJ IDEA
* @Description: 获取当前工程目录下的所有java文件
*
* 实现思路:
* 先编写寻找java文件的方法
* 然后递归遍历文件目录
* 遍历目录寻找java文件并输出
*
*/
public class FindJava {
private static final String path = "F:\\Java\\Java-project\\Demo12( basic)\\basic";
private static List<File> dirList = new ArrayList<File>();
public static void main(String[] args) {
// 新建File对象
File file = new File(path);
getDirPath(file);
for (File dirNames : dirList) {
getJavaFile(dirNames);
}
}
/**
* 采用递归方式获取目录名 直到是文件时停止递归
* 并且将获取到的文件加入到list集合中
* @param file 文件源路径
*/
private static void getDirPath(File file) {
if (file.isFile()) {
return;
}
// 获取当前路径下的所有文件
File[] files = file.listFiles();
for (File fileNames : files) {
if (fileNames.isDirectory()) {
dirList.add(fileNames);
}
// 递归调用
getDirPath(fileNames);
}
}
/**
* 得到java文件的路径转换为string,如果以.java结尾则输出,不是则跳过
* @param file 源目录名
*/
private static void getJavaFile(File file) {
// 获得此路径下的所有文件
File[] FileNames = file.listFiles();
// 对获得文件名称进行判断,如果是java文件 就输出,不是 跳过
if (FileNames != null) {
for (File fileNames : FileNames) {
/*System.out.println("fileNames = " + fileNames);*/
String path = fileNames.getPath();
if (path.endsWith(".java")) {
System.out.println(path);
}
}
} else {
System.out.println("获取文件失败!");
}
}
}
2
package indi.exer.yuluo.IO;
import java.io.File;
/**
* @author: yuluo
* @createTime: 2022/2/25 22:34
* @File: DeleteOut.java
* @Software: IntelliJ IDEA
* @Description: 删除同级目录下的out文件夹
*
* delete()方法删除的目标文件夹为空时才能删除
*/
public class DeleteOut {
/*java项目路径*/
public static final String path = "F:\\Java\\Java-project\\Demo12( basic)";
public static void main(String[] args) {
File file = new File(path);
// 寻找out文件夹
File[] files = file.listFiles();
if (files != null) {
for (File f : files) {
// 得到路径的字符串形式
String dirNames = f.getPath();
// 判断字符串的末尾是不是out 如果是 执行删除操作
if (dirNames.endsWith("out")) {
System.out.println("找到此路径下的out文件路径为: " + f);
System.out.println(deleteFiles(f) ? "删除成功!" : "删除失败!");
}
}
} else {
System.out.println("获取文件路径失败!");
}
}
/**
* 递归删除out文件夹中的所有文件
* @param f 源路径
*/
private static boolean deleteFiles(File f) {
// 获取此路径下的所有文件信息
File[] files = f.listFiles();
if (files == null) {
System.out.println("获取文件路径失败");
}
// 递归停止条件
if (!(files.length > 0)) {
return false;
}
for (File file : files) {
/*System.out.println("file = " + file);*/
file.delete();
// 如果是目录继续递归操作
if (file.isDirectory()) {
deleteFiles(file);
}
}
// 此时文件夹为空,可以删除文件夹
return f.delete();
}
}