java删除当前文件以及包括当前所在文件夹及其所有子文件夹的所有空文件夹

java删除当前文件以及包括当前所在文件夹及其所有子文件夹的所有空文件夹

@Test
public void testDeleteFileAndEmptyDirectory() {
    deleteFileAndEmptyDirectory("D:\\Temp\\testFile\\", "111.txt");
}

public static void deleteFile(String filePath) {
    File file = new File(filePath);//输入要删除文件目录的绝对路径
    System.out.println(filePath);
    System.out.println("file.exists() is " + file.exists());
    if (file.delete()) {
        System.out.println("文件删除成功!");
    } else {
        System.out.println("删除失败");
    }
}
//删除某文件目录下的所有空白文件夹
public static void deleteEmptyDirectory(File file) {
    //1、如果本来文件就为null,那么就返回
    if (file == null) return;
    //2、判断文件不为null或文件目录存在
    if (!file.exists()) {
        System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
        return;
    }
    //3、获取目录下子文件
    File[] files = file.listFiles();

    //4.1判断存在子文件,不存在子文件,则删除
    if (files == null || files.length == 0) {
        System.out.print("目录名:" + file.getName());
        file.delete();
        System.out.println("被删除!");
        return;
    }

    //4.2 遍历该目录下的文件对象
    for (File f : files) {
        if (f.isDirectory()) deleteEmptyDirectory(f);
    }

    if (file != null && file.listFiles().length == 0) {
        System.out.print("目录名:" + file.getName());
        file.delete();
        System.out.println("被删除!");
    }
}
//删除当前文件以及包括当前所在文件夹及其所有子文件夹的所有空文件夹
public static void deleteFileAndEmptyDirectory(String directoryPath, String fileName) {
    deleteFile(directoryPath + "\\" + fileName);
    deleteEmptyDirectory(new File(directoryPath));
}

你可能感兴趣的:(java)