Создать папку в APPDATA в Windows Vista / 7 - PullRequest
2 голосов
/ 12 июня 2011

Я сделал приложение в WPF, и оно имеет профили пользователей, не связанные с профилями пользователей Windows. Это довольно простая вещь, но мне нужно где-то хранить эти файлы профиля. Пока я читаю, предпочтительными папками являются Appdata, обычные данные приложения и т. Д. Для меня даже документы справятся (это школьный проект, эти вещи на самом деле не имеют большого значения). Моя проблема в том, как сделать папку для профилей в некоторых из этих мест, потому что у меня нет повышенных разрешений с моим приложением? Я знаю, как к ним добраться, но не умею читать / писать.

Я полагаю, что установщик для этого подходит, и я использую InstallShield Limited Edition с Visual Studio 2010, но я не знаю, как настроить его для создания папки при установке.

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

Tnx заранее.

Ответы [ 3 ]

3 голосов
/ 12 июня 2011

Я бы просто проверил, существуют ли файлы (используя Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), и создал бы подпапку, а если нет, написал бы там из своего приложения. У вас почти всегда есть права на запись.

Установщик в значительной степениразрешения на запись везде, потому что пользователь должен предоставить их перед запуском. Однако я не думаю, что установщик является подходящим местом для создания этих файлов. Вам все равно придется перезаписывать их позже.

2 голосов
/ 13 июня 2011

Я нашел решение. При создании установки в сегменте «Ярлыки / папки» конфигурации InstallShield щелчок правой кнопкой мыши где-нибудь в дереве открывает контекстное меню, в котором можно сделать видимыми APPDATA и аналогичные папки, а затем настроить то, что вам нужно, т.е. приложение для использования. Довольно не интуитивный подход, следовательно, он работает.

Я уже попробовал, запись в папку в APPDATA не требует никаких специальных разрешений.

Это решает мою проблему. Спасибо всем вам :).

0 голосов
/ 13 июня 2011

Во время установки вы можете установить разрешения для вашей папки в AppData.Например, вы можете установить полные разрешения для Everyone .Таким образом, ваше приложение должно иметь доступ для записи в папку.

В вашем случае вы можете установить разрешения через поддержку InstallShield.Другое решение - использовать XCACLS.EXE в качестве настраиваемого действия.

...