Как получить папку данных локального приложения в Java? [дубликат]

VBScript \VBA \VB6 (и ниже):

Dim MyValue As Integer
MyValue = &h1234

VB (.NET Framework):

Dim MyValue As Integer = &h1234

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

46
задан Community 23 May 2017 в 12:02
поделиться

4 ответа

, чтение ключа реестра «папки оболочки» устаревают, начиная с Windows 95. Клавиж реестра содержит записку «! Не Используйте этот ключ реестра. Вместо этого используйте ShgetFolderPath или ShgetknownolderPath. " Я должен был обнаружить это жесткий путь на систему Vista, где все ключи пропали, за исключением предупреждения.

Этот связанный ответ штата решает эту проблему в Windows с использованием JNA, которая является решением, которое я использую в настоящее время.

11
ответ дан 26 November 2019 в 20:20
поделиться
System.getenv("APPDATA")

(похоже, нет переменной env для папки «Local Settings», но это даст вам папку «Application Data»)

75
ответ дан 26 November 2019 в 20:20
поделиться

Вы можете прочитать путь из реестра: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders \ * , где * - один из этих ключей:

  • Local AppData ( C: \ Documents and Settings \ USER \ Local Settings \ Application Data )
  • Локальные настройки ( C: \ Documents and Settings \ USER \ Локальные настройки )
  • AppData ( C: \ Documents and Settings \ USER \ Application Data )

Примечание. Эти примеры путей взяты из английской установки Windows XP

1
ответ дан 26 November 2019 в 20:20
поделиться

Можно было бы запустить процесс для запроса ключа, а затем проанализировать вывод:

REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Local AppData"

Честно говоря, я бы более склонны использовать JNA или JNI.

-1
ответ дан 26 November 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: