/**
  * Resolves the user Trash folder and its "info" and "files" subfolders once and for all. The
  * trash folder is created if it doesn't already exist.
  */
 static {
   TRASH_FOLDER = getTrashFolder();
   if (TRASH_FOLDER != null) {
     TRASH_INFO_SUBFOLDER = TRASH_FOLDER.getChildSilently("info");
     TRASH_FILES_SUBFOLDER = TRASH_FOLDER.getChildSilently("files");
     TRASH_VOLUME = TRASH_FOLDER.getVolume();
   } else {
     TRASH_INFO_SUBFOLDER = null;
     TRASH_FILES_SUBFOLDER = null;
     TRASH_VOLUME = null;
   }
 }
  /**
   * Tries to find an existing user Trash folder and returns it. If no existing Trash folder was
   * found, creates the standard Xfce user Trash folder and returns it.
   *
   * @return the user Trash folder, <code>null</code> if no user trash folder could be found or
   *     created
   */
  private static AbstractFile getTrashFolder() {
    AbstractFile userHome = LocalFile.getUserHome();

    AbstractFile trashDir = userHome.getChildSilently(".local/share/Trash/");
    if (isTrashFolder(trashDir)) {
      return trashDir;
    }

    // No existing user trash was found: create the folder, only if it doesn't already exist.
    if (!trashDir.exists()) {
      try {
        trashDir.mkdirs();
        trashDir.getChild("info").mkdir();
        trashDir.getChild("files").mkdir();

        return trashDir;
      } catch (IOException e) {
        // Will return null
      }
    }

    return null;
  }