2010-11-18 4 views
2

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

Путь (путь UNC, как \ fileserver \ share) не может быть доступен для записи пользователю, который выполняет Setup.exe (это программное обеспечение только для Windows), поэтому я думаю, что How do you check for permissions to write to a directory or file? может не работать для меня.

Я знаю, что в Java7 появится новый файловой системы-API, но Java7 еще не выпущен.

EDIT: Пользователь 1 - запускает программу установки Пользователь 2 - запускает установленное приложение

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

Я могу использовать net use /user:<user2> <passwd2>, но я не уверен, если я получу всю необходимую информацию. Я получаю информацию о том, что путь существует, но нет, если пользователю 2 разрешено писать.

ответ

0

перед java 7, у вас нет стандартного способа проверить, может ли пользователь писать в Java-файл с использованием стандартной библиотеки. это потому, что старый java io просто недостаточно.

, например, File.canWrite() не будет работать, если считать владельца файла, и т.д ....

, что вы можете сделать, это проверить его непосредственно, например, попытаться написать пустую строку в него , (это нужно учитывать приложением, если ваше приложение просто не заботится о пустой строке в конце и автоматически удаляет завершающие пустые строки, тогда это работает ..... это просто пример, вы можете получить много сложных способов, Applicode

+0

Извините, это проверит, есть ли у меня «я» разрешение на запись файла. Мне нужно знать, может ли другой файл записываться в файл. Я мог бы решить проблему путем создания процесса через ProcessBuilder и записи файла в другом пользовательском контексте. –

Смежные вопросы