Java 基础【16】 文件(文件夹) 创建和删除

    使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节。

    比如 File 类中的 mkdir() 和 mkdirs() 的区别。

    JDK API 中描述:

   来段代码会看的更清楚:

复制代码
        File file1 = new File("F:/AAA/BBB/CCC");
        if (file1.mkdirs()) {
            System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file1.getPath() + ",上级文件为:" + file1.getParent());
        }

        File file2 = new File("F:/AAA/BBB/CCC/DDD");
        if (file2.mkdir()) {
            System.out.println("单文件夹 DDD 创建成功!创建后的文件目录为:" + file2.getPath() + ",上级文件为:" + file2.getParent());
        }

        File file3 = new File("F:/AAA/BBB/CCC/DDD","mytest.txt");
        try {
            if (file3.createNewFile()) {
                System.out.println("多级层文件夹下文件创建成功!创建了的文件为:" + file3.getAbsolutePath() + ",上级文件为:" + file3.getParent());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
复制代码

  输出:

  这样就很清楚了,mkdir() 创建单个文件夹,要确保它的上级文件夹存在。

  mkdirs() 创建多个文件夹,并且不需要保证它的上级文件夹存在。

  将文件输出到文件夹下要确保目标文件夹存在。

 【附赠】递归删除整个文件夹(文件)方法:

复制代码
    /**
     * 删除某个文件夹下的所有文件夹和文件
     *
     * @param delpath
     * @throws FileNotFoundException IOException
     * @return boolean
     */
    public static boolean deletefile(String delpath) throws Exception {
        File file = new File(delpath);
        if (file.isDirectory()) {
            String[] filelist = file.list();
            for (String delFile : filelist) {
                File delfile = new File(delpath + File.separator + delFile);
                if (delfile.isDirectory()) {
                    deletefile(delpath + File.separator + delFile);
                } else
                    System.out.println("正在删除文件:" + delfile.getPath() + ",删除是否成功:" + delfile.delete());
            }
            System.out.println("正在删除空文件夹:" + file.getPath() + ",删除是否成功:" + file.delete());
        } else
            System.out.println("正在删除文件:" + file.getPath() + ",删除是否成功:" + file.delete());
        return true;
    }
复制代码

 

posted @   Orson  阅读(24518)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示