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 (desktopFile.exists()) {
+ desktopFile = possibleDesktopFile;
+ return desktopFile;
+ }
+ }
- return null;
+ throw new RuntimeException("Cannot autodetect user desktop directory.");
}
public static File getHomeDirectory() {