文章目录

  • 删除文件夹
  • 删除文件夹(通用)
  • 删除子文件夹(通用)
  • 删除超过n天的文件夹



io流内容太多了,拆分下吧。

删除文件夹

java自带的file.delete()只能删除文件或空文件夹。
所以如果要删除文件夹,需要先遍历删除文件,再删除文件夹。

删除文件夹(通用)

/*
 * 删除文件夹(包含文件)
 */
public static void deleteDirectory(String path) {
    String methodName="删除文件夹";
    File file = new File(path);
    if (file.isDirectory()) {
        File[] files = file.listFiles();
        if (files != null) {
            for (File item : files) {
                deleteDirectory(item.getAbsolutePath());
            }
        }
    }
    file.delete();
}

注:这个方法连该文件夹也会删掉,但是有时我们的需求是删除该文件夹下的文件(不包含该文件夹)。

删除子文件夹(通用)

也比较好说,在写一个删除子文件夹的方法。
注:调用的是删除文件夹的方法,最外层文件夹不加delete()方法即可。

/*
 * 删除子文件夹(包含文件)
 */
public static void deleteSubDirectory(String path) {
    String methodName="删除子文件夹";
    log.info(methodName+"方法开始,路径={}",path);
    File file = new File(path);
    if (file.isDirectory()) {
        File[] files = file.listFiles();
        if (files != null) {
            for (File item : files) {
                deleteDirectory(item.getAbsolutePath());
            }
        }
    }
    log.info(methodName+"方法完成");
}

删除超过n天的文件夹