Delete the given file or directory

   /**
     * Delete the given file or directory.
     *
     * @param file a file or directory.
     * @param recursive if true directories will be deleted recursively.
     *
     * @return true if the file or directory could be deleted successfully.
     */
    public static boolean delete(
        File    file,
        boolean recursive)
    {
        if (file.exists())
        {
            if (file.isFile())
            {
                return file.delete();
            }
            if (recursive)
            {
                File[] files = file.listFiles();
                boolean success = false;

                for (int i = 0; i < files.length; i++)
                {
                    if (files[i].isDirectory() && (files[i].list().length != 0))
                    {
                        success = delete(files[i], true);
                    }
                    else
                    {
                        success = files[i].delete();
                    }

                    if (!success)
                    {
                        return false;
                    }
                }

                return file.delete();
            }
            return file.delete();
        }
        return false;
    }