📜  基于扩展名查找删除文件的Java程序(1)

📅  最后修改于: 2023-12-03 14:51:36.187000             🧑  作者: Mango

基于扩展名查找删除文件的Java程序

程序简介

该Java程序实现了基于扩展名查找并删除指定目录下的所有文件。

程序会提示用户输入要查找和删除的文件的扩展名,以及要搜索的目录。

程序会遍历指定目录下的所有文件,找到文件名以指定扩展名结尾的文件,并删除它们。

代码实现
import语句
import java.io.File;
主函数
public static void main(String[] args) {
    String extension = getExtensionFromUser(); // 从用户获取文件扩展名
    File folder = getFolderFromUser(); // 从用户获取要搜索的目录
    deleteFilesWithExtension(folder, extension); // 查找并删除指定扩展名的文件
    System.out.println("删除完成");
}
getExtensionFromUser函数

该函数会提示用户输入要查找和删除的文件的扩展名,并返回用户输入的扩展名。

private static String getExtensionFromUser() {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入要删除的文件扩展名(如:txt):");
    return scanner.nextLine().toLowerCase(); // 获取用户输入并将其转换为小写
}
getFolderFromUser函数

该函数会提示用户输入要搜索的目录,并返回代表该目录的File对象。

private static File getFolderFromUser() {
    Scanner scanner = new Scanner(System.in);
    File folder;
    do {
        System.out.print("请输入要搜索的目录:");
        folder = new File(scanner.nextLine());
    } while (!folder.isDirectory()); // 如果用户输入的不是目录,则循环提示用户继续输入
    return folder;
}
deleteFilesWithExtension函数

该函数会查找指定目录下所有扩展名为指定扩展名的文件,并将它们删除。

private static void deleteFilesWithExtension(File folder, String extension) {
    File[] files = folder.listFiles();
    for (File file : files) {
        if (file.isFile() && file.getName().endsWith("." + extension)) {
            System.out.println("正在删除 " + file.getPath());
            file.delete();
        } else if (file.isDirectory()) {
            deleteFilesWithExtension(file, extension); // 如果当前文件是目录,则递归删除该目录下的文件
        }
    }
}
完整代码
import java.io.File;
import java.util.Scanner;

public class FileDeleter {
    public static void main(String[] args) {
        String extension = getExtensionFromUser(); // 从用户获取文件扩展名
        File folder = getFolderFromUser(); // 从用户获取要搜索的目录
        deleteFilesWithExtension(folder, extension); // 查找并删除指定扩展名的文件
        System.out.println("删除完成");
    }

    private static String getExtensionFromUser() { // 从用户获取要删除的文件扩展名
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要删除的文件扩展名(如:txt):");
        return scanner.nextLine().toLowerCase(); // 获取用户输入并将其转换为小写
    }

    private static File getFolderFromUser() { // 从用户获取要搜索的目录
        Scanner scanner = new Scanner(System.in);
        File folder;
        do {
            System.out.print("请输入要搜索的目录:");
            folder = new File(scanner.nextLine());
        } while (!folder.isDirectory()); // 如果用户输入的不是目录,则循环提示用户继续输入
        return folder;
    }

    private static void deleteFilesWithExtension(File folder, String extension) { // 查找并删除指定扩展名的文件
        File[] files = folder.listFiles();
        for (File file : files) {
            if (file.isFile() && file.getName().endsWith("." + extension)) {
                System.out.println("正在删除 " + file.getPath());
                file.delete();
            } else if (file.isDirectory()) {
                deleteFilesWithExtension(file, extension); // 如果当前文件是目录,则递归删除该目录下的文件
            }
        }
    }
}