public static boolean deleteDirectory(File directory) {

	if (directory == null) {
	    return false;
	}
	if (!directory.exists()) {
	    return true;
	}
	if (!directory.isDirectory()) {
	    return false;
	}

	String[] list = directory.list();

	// Some JVMs return null for File.list() when the
	// directory is empty.
	if (list != null) {
	    for (int i = 0; i < list.length; i++) {
		File entry = new File(directory, list[i]);

		if (entry.isDirectory()) {
		    if (!deleteDirectory(entry)) {
			return false;
		    }
		} else {
		    if (!entry.delete()) {
			return false;
		    }
		}
	    }
	}

	return directory.delete();
    }