Вот сценарий. У меня есть приложение, которое записывает файл конфигурации в его каталог (user.dir
). Когда пользователь не может записать в этот каталог из-за проблем с UAC, я бы хотел изменить это значение на user.home/.appname/
. Проблема в том, что Windows действительно лжет моему приложению и пишет в user.dir
, который находится в каталоге Program Files, но, хотя он разрешает запись и чтение (даже после перезапуска), он не сохраняет его там, он сохраняет его в скрытый каталог (домашний каталог / AppData / Local / VirtualStore / Program Files / appname), затрудняющий / невозможный для пользователя найти, хотят ли они редактировать файл.
Однако я не хочу просто изменять свое приложение для записи на user.home
и покончить с этим, потому что некоторые пользователи запускают приложение с USB-накопителя, и в этот момент я хочу использовать user.dir
, если оно доступен, потому что в этом сценарии (на гостевом компьютере) было бы бесполезно оставлять вещи вокруг домашнего каталога пользователя.
Итак, после этого довольно длинного запутанного фона, есть ли способ из java узнать, действительно ли локальный каталог действительно доступен для прямой записи из Java или же Vista собирается вместо этого виртуализировать запись каталога в другое место?