• 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;
        }
  • 相关阅读:
    strcpy,memset,memcpy三者之间的根本区别
    最便捷、最强大、速度最快的C++序列化框架
    C++读写二进制文件
    boost binary 序列化
    febird.dataio和boost.serialization性能对比
    Boost文本序列化和二进制序列化的效率比较
    Boost文本序列化和二进制序列化的效率比较
    c++的vector赋值方法汇总
    OCP-1Z0-051-V9.02-36题
    遍历list或map时删除元素(较巧妙)
  • 原文地址:https://www.cnblogs.com/java-class/p/5667126.html
Copyright © 2020-2023  润新知