开发者

java删除文件夹的实现方式

目录
  • Java删除文件夹
    • 先看File.delete()的方法api文档
    • 搞定了这个工具方法和单元测试
    • 单元测试
  • 总结

    java删除文件夹

    先看File.delete()的方法api文档

    Deletes the file or directory denoted by this abstract pathname. If

    this pathname denotes编程客栈 a directory, then the directory must be empty in

    order to be deleted.

    意即,删除文件或者目录,但是如果是目录,则这个目录必须是空的才能被删除。也就是说编程客栈,要删一个非空文件夹,直接调delete方法是无法达到目的的。

    看到这个api说明时,我的第一想法是,用 先根遍历序递归删除 文件夹。

    搞定了这个工具方法和单元测试

    /**
     * 先根遍历序递归删除文件夹
     *
     * @param dirFile 要被删除的文件或者目录
     * @return 删除成功返回true, 否则返回false
     */
    public static boolean deleteFile(File dirFile) {
        // 如果dir对应的文件不存在,则退出
        if (!dirFile.exists()) {
            return false;
        }
    
        if (dirFile.isFile()) {
            return dirFile.delete();
        } else {
    
          javascript  for (File file : dirFile.listFiles()) {
                deleteFile(file);
            }
        }
    
        return dirFile.delete();
    }

    单元测试

    @Test
    public void delete() {
        File file = new File("/temp/lock11-1");
        ExcelDiskUtils.deleteFile(file);
    }

    功能是OK的。但是晚上回家想了想。这么基础的工具方法,肯定有第三方工具类提供支持,自己再写一遍是浪费时间。于是我开始查guava和commons-io的工具类。

    在commons-io包里找到了一个能达到同样目的的方法org.apache.commons.io.FileUtils#deleteDirectory

        /**
         * Deletes a directory recursively.
         *
         * @param directory directory to delete
         * @throws IOException              in case deletion is unsuccessful
         * @throws IllegalArgumentException if {@code directory} does not exist or is not a directory
         */
        public static void deleteDirectory(final File directory) throws IOException {
            ... ...
        }

    看方法的api说明

    Deletes a directory recursively.

    意即,递归的删除一个目录。

    自己在写一些常规的工python具方法时,最好先看看commons包或者guava包有没有提供,如果提供了,就用他们的。

    不仅节约时间,提高效率,而且这些 顶尖高手写的代码的鲁棒性 都很好。

    没必要重复造轮子,遇到定制需求,万不得已再自己写。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www编程客栈.cppcns.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜