From f2f5769996256492b3cd430a4c57b1317582b340 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Sat, 2 Nov 2013 23:01:18 +0200 Subject: [PATCH] better quessing of user desktop directory --- .../commons/file/CommonPathResolver.java | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java b/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java index 1fa1cfd..d3c1f9f 100644 --- a/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java +++ b/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java @@ -13,24 +13,43 @@ import java.io.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 (desktopFile.exists()) { + desktopFile = possibleDesktopFile; + return desktopFile; + } + } - return null; + throw new RuntimeException("Cannot autodetect user desktop directory."); } public static File getHomeDirectory() { -- 2.20.1