C # Vista не дает доступа к созданию папки - PullRequest
0 голосов
/ 25 сентября 2010

В моем проекте мне нужно создать несколько файлов и каталогов в папке моего приложения, которая находится в программных файлах. Но в Vista это дает мне ошибку, что у меня нет доступа для создания файла. Что мне теперь делать для предоставления доступа? Также это не позволило мне получить доступ к реестру !!

Ответы [ 3 ]

4 голосов
/ 25 сентября 2010

Папка программы не является местом для хранения данных приложения. Для этого есть папка% APPDATA% - вы должны хранить там свои данные.

Используйте System.Environment.SpecialFolder и System.Environment.GetFolderPath , чтобы получить путь, ведущий к правильному каталогу.

Кроме того, необходимо различать создание папки и добавление туда некоторых файлов (например, во время установки) или запись в папку программы во время выполнения, хотя обычно она выполняется под ограниченной учетной записью.

Причиной этого различия является просто то, что процедуры установки и настройки выполняются с повышенными привилегиями в Vista / Windows 7, поэтому им разрешено создавать там папки и файлы. Тем не менее, эти файлы не должны записываться во время выполнения вашего приложения .

Итак, что вы хотите сделать? Записывать данные во время выполнения или помещать некоторые файлы (например, зависимости) в папку приложения за один раз? Если это первое, соблюдайте правила и используйте папку% APPDATA%. Если это второе, создайте программу установки / настройки.

1 голос
/ 25 сентября 2010

В Vista и Win 7 папка Program Files заблокирована, поэтому вы не можете писать в нее с учетной записью обычного пользователя.Если вам нужно создавать папки там, то вам следует сделать это в установщике.В противном случае вы можете использовать папку Application Data пользователя в его профиле.

Единственный другой способ - изменить разрешения для папки установки во время установки.

0 голосов
/ 25 сентября 2010

Можете ли вы выключить UAC?Или войти как администратор?Скорее всего, вы создаете папку не в том месте.

...