java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法

文章目录

一、记录文件相关操作方法

二、代码

1.读取路径返回List<File>

java 复制代码
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
     * 读取路径返回List<File>
     * @param directoryPath 路径
     * @return 结果
     */
    public static List<File> listFilesReturnFileList(String directoryPath) {
        logger.info("-listFilesReturnFileList-directoryPath:{}", directoryPath);
        File directory = new File(directoryPath);
        List<File> fileList = new ArrayList<>();

        if (directory.exists() && directory.isDirectory()) {
            File[] files = directory.listFiles();
            if (files != null) {
                for (File file : files) {
                    fileList.add(file);
                }
            }
        }

        return fileList;
    }

2.读取路径返回List<String>

java 复制代码
/**
     * 读取路径返回List<String>
     * @param directoryPath 路径
     * @return 结果
     */
    public static List<String> listFilesReturnFileNameList(String directoryPath) {
        logger.info("-listFilesReturnFileNameList-directoryPath:{}", directoryPath);
        File directory = new File(directoryPath);
        List<String> fileList = new ArrayList<>();

        if (directory.exists() && directory.isDirectory()) {
            File[] files = directory.listFiles();
            if (files != null) {
                for (File file : files) {
                    fileList.add(file.getName());
                }
            }
        }

        return fileList;
    }

3.删除文件夹

java 复制代码
 * 删除文件夹
     * @param directoryPath 路径
     * @return 结果
     */
    public static boolean deleteDirectory(String directoryPath) {
        logger.info("-deleteDirectory-directoryPath:{}", directoryPath);
        File directory = new File(directoryPath);

        if (!directory.exists()) {
            logger.info("Folder does not exist");
            return true; // 文件夹不存在,无需删除
        }

        if (!directory.isDirectory()) {
            logger.info("Not a Directory");
            return false; // 不是一个有效的文件夹路径
        }

        // 递归删除文件夹及其内容
        return deleteDirectoryRecursive(directory);
    }
    
     /**
     * 递归删除文件夹及其内容
     * @param directory 要删除的文件夹
     * @return 结果
     */
    private static boolean deleteDirectoryRecursive(File directory) {
        logger.info("-deleteDirectoryRecursive-directory:{}", directory.getName());
        File[] files = directory.listFiles();

        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    deleteDirectoryRecursive(file); // 递归删除子文件夹
                } else {
                    file.delete(); // 删除文件
                }
            }
        }

        return directory.delete(); // 删除空文件夹
    }

4.删除文件

java 复制代码
/**
     * 删除文件
     * @param filePath 路径
     * @return 结果
     */
    public static boolean deleteFile(String filePath) {
        logger.info("-deleteFile-filePath:{}", filePath);
        File file = new File(filePath);

        if (!file.exists()) {
            logger.info("Folder does not exist");
            return true; // 文件不存在,无需删除
        }

        if (!file.isFile()) {
            logger.info("Not a File");
            return false; // 不是一个有效的文件路径
        }

        return file.delete(); // 删除文件
    }
相关推荐
a_blue_ice5 分钟前
JAVA 面试 MySQL
java·mysql·面试
月阳羊1 小时前
【硬件-笔试面试题-76】硬件/电子工程师,笔试面试题(知识点:H桥驱动电路的设计要点)
java·单片机·嵌入式硬件·面试·职场和发展
赵星星5201 小时前
MySQL的默认隔离级别:为什么是可重复读(RR)而非读已提交(RC)?
java
用户2018792831671 小时前
故事:公司的 "私人储物柜" 系统(ThreadLocalMap)
android·java
ling__i1 小时前
java day18
java·开发语言
非ban必选1 小时前
netty-scoket.io路径配置
java·服务器·前端
渣哥2 小时前
我和Java 8 Stream相爱相杀的那些年
java
爱吃烤鸡翅的酸菜鱼2 小时前
【Spring】原理解析:Spring Boot 自动配置
java·spring boot
小白兔3532 小时前
一文讲通Unicode规范、UTF-8与UTF-16编码及在Java中的验证
java
十八旬2 小时前
苍穹外卖项目实战(day7-1)-缓存菜品和缓存套餐功能-记录实战教程、问题的解决方法以及完整代码
java·数据库·spring boot·redis·缓存·spring cache