Вопрос

Где в системе Windows (Vista) следует размещать данные, которые должны быть читабельными? и доступен для записи всем, т.е.каждый пользователь компьютера?Концепции Vista о C:\Users\xxx\AppData\something, C:\Program Files и C:\ProgramData, а также UAC немного сбивают с толку.

Кроме того, есть ли готовое решение для определения этих местоположений с помощью Java?Я предполагаю, что это требует некоторого взаимодействия с собственными библиотеками, поскольку System.getProperties имеет только user.home и user.dir, ни один из которых не доступен для глобальной записи.

Это было полезно?

Решение

В Vista это место C:\ProgramData, оно заменяет то, что раньше было C:\Documents and Settings\AllUsers\AppData в XP.

Я не уверен в особенностях этого в Java..но переменная среды ALLUSERSPROFILE дает вам путь, если вы можете его получить.Вы всегда должны использовать это вместо жесткого кодирования пути, поскольку имя папки меняется в разных интернационализированных версиях ОС.

Другие советы

Если вам необходимо разрешить пользователям, не имеющим прав администратора, изменять глобальные настройки, то правильным подходом будет создание установщика для приложения и во время установки установить разрешения для папки «Общие данные приложения», чтобы пользователям было разрешено изменять глобальные настройки. напишите ему.

Смотрите этот пост: Где разместить общие записываемые файлы приложений?

Если данные не очень большие, вы можете взглянуть на API настроек;в частности Preferences.systemNodeForPackage.Это дает вам независимое от платформы, общесистемное и независимое от серверной части хранилище, если это то, что вам нужно.

Кроме того, есть ли готовое решение для определения этих мест с Java?

Вы можете проверить соответствующие переменные среды, например %PROGRAMDATA%, %PROGRAMFILES% и другие.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top