Write a Java Program to Delete Empty and Non-empty Directory

In Java, you can delete empty and non-empty directories using the java.io.File class.

The File class provides methods to check whether a file or directory exists, is a directory or a file, and to delete a file or directory.

To delete an empty directory in Java, you can use the delete() method of the File class.

Here’s an example:

import java.io.File;

public class DeleteEmptyDirectory {
    public static void main(String[] args) {
        File dir = new File("path/to/empty/directory");
        boolean deleted = dir.delete();
        if (deleted) {
            System.out.println("Directory deleted successfully");
        } else {
            System.out.println("Failed to delete directory");
        }
    }
}

The above code first creates a File object for the empty directory that you want to delete.

Then, it calls the delete() method of the File object to delete the directory.

The delete() method returns a boolean value that indicates whether the directory was deleted successfully or not.

To delete a non-empty directory in Java, you can use the delete() method of the File class along with a recursive function that deletes all the files and subdirectories inside the directory.

Here’s an example:

import java.io.File;

public class DeleteNonEmptyDirectory {
    public static void main(String[] args) {
        File dir = new File("path/to/non-empty/directory");
        deleteDirectory(dir);
    }

    public static void deleteDirectory(File dir) {
        if (dir.isDirectory()) {
            File[] files = dir.listFiles();
            if (files != null) {
                for (File file : files) {
                    deleteDirectory(file);
                }
            }
        }
        boolean deleted = dir.delete();
        if (deleted) {
            System.out.println("Directory deleted successfully");
        } else {
            System.out.println("Failed to delete directory");
        }
    }
}

The above code first creates a File object for the non-empty directory that you want to delete.

Then, it calls the deleteDirectory() method to recursively delete all the files and subdirectories inside the directory.

Finally, it calls the delete() method of the File object to delete the directory itself.

In the deleteDirectory() method, we first check whether the given File object represents a directory.

If it does, we list all the files and subdirectories inside the directory using the listFiles() method.

Then, we recursively call the deleteDirectory() method for each file and subdirectory inside the directory.

Finally, we call the delete() method of the File object to delete the directory itself.


In conclusion, deleting empty and non-empty directories in Java is easy using the java.io.File class.

To delete an empty directory, you can simply call the delete() method of the File object.

To delete a non-empty directory, you can use the deleteDirectory() method along with a recursive function that deletes all the files and subdirectories inside the directory.