首页 > 编程语言 >java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法

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

时间:2024-11-19 20:45:16浏览次数:1  
标签:文件 java file 删除 directoryPath File directory return

@

目录

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

二、代码

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

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>

/**
     * 读取路径返回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.删除文件夹

 * 删除文件夹
     * @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.删除文件

/**
     * 删除文件
     * @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(); // 删除文件
    }

重要信息

标签:文件,java,file,删除,directoryPath,File,directory,return
From: https://www.cnblogs.com/bigcat26/p/18555568

相关文章

  • hackcambridge-ccleaner-app CCleaner.dat 文件解密
    ccleanerv5.70CCleaner.dat文件解密hackcambridge-ccleaner-appimportbase64fromCrypto.CipherimportBlowfishfromCrypto.Util.Paddingimportunpad,pad#k="041ULKGbv7meLDmSgUyrkw=="k="d3fRPFY0JQp5D76PyNh4ag=="#iv="e12SAq6rENg......
  • IDEA如何新增一个模块和删除一个模块
    前言大家好,我是小徐啊。今天小徐要给大家介绍下IDEA里面如何新增和删除模块。在开发过程中,我有时候会遇到多模块的项目,有时候自己也要增加相应的模块,用不同的模块去开发不同的功能。那么该如何操作呢?如何新增模块首先,在IDEA中,将鼠标放在项目的根目录上,然后右击鼠标,点击新建,再点......
  • Java小白成长记(创作笔记一)
    目录序言思维导图 开发流程新建SpringBoot并整合MybatisPlus        新建SpringBoot整合MybatisPlus统一结果封装全局异常处理引入数据库序言   在一个充满阳光的早晨,一位对编程世界充满好奇的年轻人小小白,怀揣着梦想与激情,踏上了学习Java编程的......
  • 面试题--Java反射
    目录获得一个类的class对象有哪些方式?1.使用.class属性:2.使用Class.forName方法:3.通过实例的getClass方法:4.通过类加载器:5.通过数组的getClass方法:6.通过Thread.currentThread().getContextClassLoader().loadClass:7.通过Method、Constructor等类的getDeclaringClass和getReturnT......
  • 你可能不知道的JavaScript-1
    目录1.防御式CSS2.js的应用领域JavaScript中让人迷惑的知识点3.一个网页URL从输入到浏览器中到显示经历过怎么样的解析过程呢4.浏览器内核1.是什么2.浏览器的渲染过程HTML解析CSS解析构建RenderTree3.回流与重绘1.回流(重排)2.重绘3.页面性能优化1.减少DOM操......
  • electron 渲染进程无法接收到主进程发送的配置文件内容
    问题electron中,主进程启动的时候,会读取配置文件内容,并通过ipc发送给渲染进程。现在的问题是,preload.js中的contextBridge里面的ipcRenderer.on一直没有执行。解决其实原因很简单,软件开启的时候,通过contextBridge和ipc这一套还没有完全准备好。导致主进程使用web......
  • java:找不到符号 符号:变量:log
    原文链接:https://blog.csdn.net/zhanghaoninhao/article/details/129180810问题:java:找不到符号 符号:变量:log环境:springbootidea解决方法:在idea中,点击file-Settings,打开配置页面,如图红框位置,输入:-Djps.track.ap.dependencies=false  ......
  • JavaAPI.03.日期与集合
    日期类型使用:在开发应用程序时,经常需要处理与时间相关的数据,比如记录用户的注册时间、订单的创建时间、会议的安排时间等。Java提供了多种日期和时间的处理方式,以便开发者能够方便地操作这些数据。Date类Date类位于java.util包中,表示特定的瞬间,精确到......
  • 使用java程序模拟电影案例(增删改查)
    publicstaticvoidmain(String[]args){//完成电影案例//1、创建电影对象:定义电影类//2、创建一个电影操作对象:专门负责对电影数据进行业务处理(上架、下架、查询、封杀)MovieServicemovieService=newMovieService();movi......
  • [Java] String的hashCode方法
    简述java/lang/String#hashCode是用途极广的方法,其源码实现也存在一定变迁。其位于JRE的rt.jar包内OpenJDKOpenJDK8-b120版~9-b00版:=OracleJDK1.8.0-261jdk/jdk/src/share/classes/java/lang/String.javahttps://github.com/openjdk/jdk/blob/jdk8-b120/......