Ошибка доступа к файлу из «Мои документы» для Windows Xp и Windows 7 - PullRequest
7 голосов
/ 31 августа 2010

Сэр, я работаю в Java-приложении. В этом приложении я должен получить доступ к файлам из «Моих документов».Проблема возникает с версией Windows, когда я использую Windows 7, она может быть доступна как папка «Документы», но для Windows XP это «Мои документы».

Я пишу следующий код для доступа к файлам из папки «Документы» в Windows 7.

 public static void main(String[] arr)
 {
     try
     {
         String source = System.getProperty("user.home")+ File.separator + "Documents";
         File[] Files = new File(source).listFiles();
         System.out.println(Files.length);
     }
     catch(Exception ex)
     {
         ex.printStackTrace();
     }
 }

и для Windows Xp

 public static void main(String[] arr)
 {
     try
     {
         String source = System.getProperty("user.home")+ File.separator + "My Documents";
         File[] Files = new File(source).listFiles();
         System.out.println(Files.length);
     }
     catch(Exception ex)
     {
         ex.printStackTrace();
     }
 }

Пожалуйста, не могли бы вы предложить мнеуниверсальный метод, который можно применять для всех версий Windows?

Ответы [ 3 ]

1 голос
/ 31 августа 2010

Вы можете проверить версию операционной системы, а затем использовать ее для сопоставления правильного имени файла.

0 голосов
/ 31 августа 2010

Проверьте проект apache commons . Существует класс SystemUtils , который предоставляет больше информации о системе.

0 голосов
/ 31 августа 2010

Для этого не существует стандартного метода Java, но существует несколько библиотек, например Winfoldersjava .

Не просто угадывайте и добавляйте «Мои документы».У вас будут проблемы с локализованными версиями Windows.Например, на норвежском языке имя «Мой документер», а не «Мои документы».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...