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判断文件或者文件夹是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java接口使用默认方法的讲解

    java接口使用默认方法的讲解

    在本篇文章里小编给大家整理了一篇关于java接口使用默认方法的讲解内容,有需要的朋友们可以学习下。
    2021-04-04
  • String StringBuilder StringBuffer区别以及源码分析

    String StringBuilder StringBuffer区别以及源码分析

    string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行string操作,同时,C++的算法库对string类也有着很好的支持,并且string类还和c语言的字符串之间有着良好的接口
    2021-06-06
  • Java命名规则详细总结

    Java命名规则详细总结

    Class名应是首字母大写的名词。命名时应该使其简洁而又具有描述性。异常类的命名,应以Exception结尾。Interface的命名规则与Class相同
    2013-10-10
  • Java基础教程之实现接口

    Java基础教程之实现接口

    这篇文章主要介绍了Java基础教程之实现接口,也可以说是实施接口,因为接口只是定义,最终要实现它,本文就专门讲解接口的实现,需要的朋友可以参考下
    2014-08-08
  • 关于elasticsearch的match_phrase_prefix查询详解

    关于elasticsearch的match_phrase_prefix查询详解

    这篇文章主要介绍了关于elasticsearch的match_phrase_prefix查询问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Spring实战之@Autowire注解用法详解

    Spring实战之@Autowire注解用法详解

    这篇文章主要介绍了Spring实战之@Autowire注解用法,结合实例形式详细分析了Spring @Autowire注解具体实现步骤与相关使用技巧,需要的朋友可以参考下
    2019-12-12
  • 通过java api实现解压缩zip示例

    通过java api实现解压缩zip示例

    这篇文章主要介绍了通过java api实现解压缩zip示例,需要的朋友可以参考下
    2014-04-04
  • 通过实例学习Java集合框架HashSet

    通过实例学习Java集合框架HashSet

    这篇文章主要介绍了通过实例学习Java集合框架HashSet,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java程序代码与文本对比实用工具简介

    java程序代码与文本对比实用工具简介

    可以对两段文本进行对比,检测/比较两个文本有什么不同的差异,以便修改,常用于程序代码,就是不需要人工查看,尤其是大文件,有几百上千行的代码,这时候就建议使用比较工具了,不用浪费过多时间去寻找
    2021-09-09
  • Mybatis StatementHandler的使用小结

    Mybatis StatementHandler的使用小结

    本文主要介绍了Mybatis StatementHandler的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03

最新评论