X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Ffile%2FCommonPathResolver.java;h=04a2fe98d7dc6a56b1cb923c4ca2f70add1e4cce;hb=9bf004ce4e9b5edff36c65fcc8cc0f303390d7fc;hp=1fa1cfdfbcef01724b805fe99014ea29e2452f3c;hpb=cf965fda534cc562368c9f2a3f34475e2519fcdc;p=svjatoslav_commons.git diff --git a/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java b/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java old mode 100644 new mode 100755 index 1fa1cfd..04a2fe9 --- a/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java +++ b/src/main/java/eu/svjatoslav/commons/file/CommonPathResolver.java @@ -1,10 +1,10 @@ /* * 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; @@ -13,28 +13,50 @@ import java.io.File; public class CommonPathResolver { - /** - * 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()) - return desktopFile; - - desktopPath = System.getProperty("user.home") + "/Рабочий стол"; - - desktopFile = new File(desktopPath); - if (desktopFile.exists()) - return desktopFile; - - return null; - } - - public static File getHomeDirectory() { - return new File(System.getProperty("user.home")); - } + private 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"}; + + private static File desktopFile; + + /** + * This method tries to guess user desktop directory. Implementation is + * pretty lousy. Need to improve it some day. + * + * @return file that points to user desktop directory. + * @throws RuntimeException if user desktop directory is not found. + */ + public static File getDesktopDirectory() { + + if (desktopFile != null) + return desktopFile; + + final String userHomePath = System.getProperty("user.home"); + + for (final String desktopName : desktopNames) { + + final String desktopPath = userHomePath + "/" + desktopName; + + final File possibleDesktopFile = new File(desktopPath); + if (possibleDesktopFile.exists()) { + desktopFile = possibleDesktopFile; + return desktopFile; + } + } + + throw new RuntimeException("Cannot autodetect user desktop directory."); + } + + public static File getHomeDirectory() { + return new File(System.getProperty("user.home")); + } }