/*
* Svjatoslav Commons - shared library of common functionality.
- * Copyright ©2012-2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
*
* This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
+ * modify it under the terms of version 3 of the GNU Lesser General Public License
+ * or later as published by the Free Software Foundation.
*/
package eu.svjatoslav.commons.file;
public class CommonPathResolver {
+ public static File desktopFile;
+
+ static final String[] desktopNames = new String[] { "Tafelblad", "المكتب",
+ "Masa Üstü", "Сталец", "Десктоп", "ডেস্কটপ", "Desktop",
+ "Escriptori", "Prostředí pracovní plochy", "Penbwrdd",
+ "Skrivebord", "Επιφάνεια εργασίας", "Escritorio", "Töölaud",
+ "Mahaigaina", "Työpöytä", "Bureau", "Deasc", "ડૅસ્કટોપ",
+ "डेस्कटॉप", "Radna površina", "Munkaasztal", "デスクトップ", "დესკტოპი",
+ "데스크탑", "Darbastalis", "Дэлгэц", "Skrivebord", "Teseke", "ਵਿਹੜਾ",
+ "Pulpit", "Ambiente de Trabalho", "Área de Trabalho",
+ "Рабочий стол", "Pracovná plocha", "Hapësira e Punës",
+ "Радна површ", "Radna površ", "Skrivbord", "கணிமேசை", "Мизи корӣ",
+ "พื้นโต๊ะ", "Masaüstü", "Стільниця", "桌面", "Isiga-nyezi" };
+
/**
* This method tries to guess user desktop directory. Implementation is
* pretty lousy. Need to improve it some day.
*/
public static File getDesktopDirectory() {
- String desktopPath = System.getProperty("user.home") + "/Desktop";
- File desktopFile = new File(desktopPath);
- if (desktopFile.exists())
+ if (desktopFile != null)
return desktopFile;
- desktopPath = System.getProperty("user.home") + "/Рабочий стол";
+ final String userHomePath = System.getProperty("user.home");
- desktopFile = new File(desktopPath);
- if (desktopFile.exists())
- return desktopFile;
+ for (final String desktopName : desktopNames) {
+
+ final String desktopPath = userHomePath + "/" + desktopName;
+
+ final File possibleDesktopFile = new File(desktopPath);
+ if (possibleDesktopFile.exists()) {
+ desktopFile = possibleDesktopFile;
+ return desktopFile;
+ }
+ }
- return null;
+ throw new RuntimeException("Cannot autodetect user desktop directory.");
}
public static File getHomeDirectory() {