Java判断文件或者文件夹是否存在的功能(不存在创建,存在删除)

 更新时间:2025年03月26日 17:16:47   作者:康林森  
在Java中,要判断文件或文件夹是否存在,并根据判断结果来执行创建或删除操作,你可以使用java.io.File类或者java.nio.file包中的类,本文介绍Java判断文件或者文件夹是否存在,不存在创建,存在删除,感兴趣的朋友一起看看吧

Java判断文件或者文件夹是否存在,不存在创建,存在删除

在Java中,要判断文件或文件夹是否存在,并根据判断结果来执行创建或删除操作,你可以使用java.io.File类或者java.nio.file包中的类。以下是分别使用这两个类实现这个功能的示例代码。

使用java.io.File类

import java.io.File;
import java.io.IOException;
public class FileOrDirectoryOperations {
    public static void main(String[] args) {
        String path = "path/to/your/file_or_directory";
        File fileOrDirectory = new File(path);
        if (fileOrDirectory.exists()) {
            // 如果存在,则删除(无论是文件还是文件夹)
            if (fileOrDirectory.delete()) {
                System.out.println("文件或文件夹已删除。");
            } else {
                System.out.println("文件或文件夹删除失败。");
            }
        } else {
            // 如果不存在,则创建文件夹(注意:这里不会创建文件,只会创建文件夹)
            // 如果你想创建文件,请使用fileOrDirectory.createNewFile()代替mkdir()
            if (fileOrDirectory.mkdir()) { // 或者使用mkdirs()创建多级目录
                System.out.println("文件夹已创建。");
            } else {
                System.out.println("文件夹创建失败。");
            }
        }
    }
}

‌注意‌:上面的代码有一个问题,即它假设你想要创建的是一个文件夹而不是一个文件。如果你想要创建一个文件,你应该使用createNewFile()方法。但是,由于题目要求判断“文件或者文件夹”,这里我们使用了mkdir()来创建文件夹作为示例。如果你需要创建文件,请相应地修改代码。

使用java.nio.file包

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
public class FileOrDirectoryOperationsNIO {
    public static void main(String[] args) {
        String pathString = "path/to/your/file_or_directory";
        Path path = Paths.get(pathString);
        if (Files.exists(path)) {
            // 如果存在,则删除(无论是文件还是文件夹)
            try {
                // 注意:Files.delete() 如果路径是目录且不为空,则会抛出 DirectoryNotEmptyException
                // 如果你想要删除非空目录,你需要使用 Files.walk() 来遍历并删除目录中的所有内容
                Files.delete(path);
                System.out.println("文件或文件夹已删除。");
            } catch (IOException e) {
                // 捕获并处理异常,例如 DirectoryNotEmptyException
                System.out.println("文件或文件夹删除失败:" + e.getMessage());
                if (e instanceof java.nio.file.DirectoryNotEmptyException) {
                    System.out.println("目录不为空,无法删除。");
                    // 可以选择递归删除目录内容
                }
            }
        } else {
            // 如果不存在,则尝试创建(这里假设你想要创建的是文件夹)
            // 如果你想要创建文件,请使用 Files.createFile(path)
            try {
                // 创建单级目录,如果父目录不存在则会抛出 NoSuchFileException
                // 如果你想要创建多级目录,请使用 Files.createDirectories(path)
                Files.createDirectory(path);
                System.out.println("文件夹已创建。");
            } catch (IOException e) {
                System.out.println("文件夹创建失败:" + e.getMessage());
            }
        }
    }
}

注意‌:

Files.delete() 方法如果试图删除一个非空目录,会抛出 DirectoryNotEmptyException。如果你想要删除一个非空目录,你需要先遍历并删除目录中的所有文件和子目录。

Files.createDirectory() 方法只会创建单级目录。如果父目录不存在,它会抛出 NoSuchFileException。如果你想要创建多级目录,请使用 Files.createDirectories() 方法。

在上面的代码中,我假设你想要创建的是文件夹而不是文件。如果你想要创建文件,请使用 Files.createFile(path) 方法代替 Files.createDirectory(path)。

请根据你的具体需求修改上述代码。如果你需要同时处理文件和文件夹的创建和删除,你可能需要在代码中添加额外的逻辑来区分这两种情况。

到此这篇关于Java判断文件或者文件夹是否存在,不存在创建,存在删除的文章就介绍到这了,更多相关Java判断文件或者文件夹是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用mybatis格式化查询出的日期

    使用mybatis格式化查询出的日期

    这篇文章主要介绍了使用mybatis格式化查询出的日期,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • mybatis-plus 查询传入参数Map,返回List<Map>方式

    mybatis-plus 查询传入参数Map,返回List<Map>方式

    这篇文章主要介绍了mybatis-plus 查询传入参数Map,返回List<Map>方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring注解之@Conditional使用解析

    Spring注解之@Conditional使用解析

    这篇文章主要介绍了Spring注解之@Conditional使用解析,@Conditional注解可以说是SpringBoot的条件注解,表示组件只有在所有指定条件都匹配时才有资格注册,条件是可以在 bean 定义注册之前​​以编程方式确定的任何状态,需要的朋友可以参考下
    2024-01-01
  • 关于@Autowierd && @Resource 你真的了解吗

    关于@Autowierd && @Resource 你真的了解吗

    这篇文章主要介绍了关于@Autowierd && @Resource的具体使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • logback如何去掉DubboMonitor烦人的INFO日志

    logback如何去掉DubboMonitor烦人的INFO日志

    这篇文章主要介绍了logback如何去掉DubboMonitor烦人的INFO日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java中使用json与前台Ajax数据交互的方法

    Java中使用json与前台Ajax数据交互的方法

    这篇文章主要为大家详细介绍了Java中使用json与前台Ajax数据交互的方法,分享Ajax获取显示Json数据的一种方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java如何自定义线程池中队列

    Java如何自定义线程池中队列

    这篇文章主要介绍了Java如何自定义线程池中队列,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • vue+springboot上传文件、图片、视频及回显到前端详解

    vue+springboot上传文件、图片、视频及回显到前端详解

    一般来说vue可以使用axios或者fetch等ajax库发送文件请求,而springboot则可以使用Spring MVC的方式来处理上传文件请求,下面这篇文章主要给大家介绍了关于vue+springboot上传文件、图片、视频及回显到前端的相关资料,需要的朋友可以参考下
    2023-04-04
  • Java阻塞队列BlockingQueue详解

    Java阻塞队列BlockingQueue详解

    这篇文章主要介绍了Java阻塞队列BlockingQueue,文章通过队列的类型展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • java后台如何利用Pattern提取所需字符详解

    java后台如何利用Pattern提取所需字符详解

    这篇文章主要给大家介绍了关于java后台如何利用Pattern提取所需字符的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01

最新评论