Можно ли поместить файл myfile.file в папку C: / Windows / System32 / во время выполнения? - PullRequest
1 голос
/ 02 августа 2011

Я хочу разместить файл с именем myFile.file в

C:/Windows/System32/ местоположение.

Здесь используйте java-код , чтобы разместить мой файл. в то время как я выполняю свою программу, она выдает " Доступ запрещен: C: /Windows/System32/myFile.file"

почему это происходит? Можно ли разместить в этом месте?

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Это (и многие другие) местоположения системы ограничены для администраторов / приложений с повышенными правами.Данные приложения должны храниться в файлах данных приложения пользователя в профиле пользователя (или в общих данных приложения).

Если вам действительно необходимо выполнить запись в системную папку, вам нужно будет запросить у пользователя разрешение черезUAC, либо с помощью ShellExecute() с глаголом runas для запуска другой программы, либо с повышением COM (если это возможно в Java)

Обновление
См. Эндрюответьте за метод для получения правильного пути в Java.

1 голос
/ 05 августа 2011

Поместите myFile.file в подкаталог из user.home.

Подкаталог может быть именем пакета класса, сохраняющего файл. НАПРИМЕР. если ваш основной класс our.com.Main, сохраните файл в ${user.home}/our/com/myFile.file. Причиной использования подкаталога является предотвращение использования других приложений. myFile.file от перезаписи или вмешательства в вашу собственную версию.

Чтобы узнать местоположение user.home, см .:

System.getProperty("user.home");

Значение user.home здесь:

Name        Value
user.home   C:\Users\Andrew

Эта техника будет надежно работать для Mac. & * nix, а также Windows.

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