“Доступ к пути … запрещен” (.NET C#)

Вещи, которые неизменны, никогда не изменяются. Изменяемые вещи могут измениться. Изменяемые вещи видоизменяются. Неизменные вещи, кажется, изменяют, но на самом деле создают новую изменяемую вещь.

, Например, вот карта в Clojure

(def imap {1 "1" 2 "2"})
(conj imap [3 "3"])
(println imap)

, первая строка создает новую неизменную карту Clojure. Вторая строка соединяется 3 и "3" к карте. Это может появиться, как будто это изменяет старую карту, но в действительности это возвращается новый карта с 3 "3" добавленных. Это - главный пример неизменности. Если бы это было изменяемой картой, то она просто добавила бы 3 "3" непосредственно к та же старая карта. Третья печать строки карта

{3 "3", 1 "1", 2 "2"}

Неизменность помогает содержать код в чистоте и безопасный. Это и другие причины - то, почему языки функционального программирования имеют тенденцию склоняться к неизменности и менее с сохранением информации.

12
задан Adam Ralph 20 September 2009 в 12:52
поделиться

3 ответа

В комментариях к другому ответу вы говорите, что это настольное приложение, поэтому давайте рассматривать каждое местоположение отдельно.

В Vista и более поздних версиях обычный пользователь не имеет прав на создание файлов в корневом каталоге системного диска (обычно C :). Вы можете убедиться в этом сами, открыв C: \ в проводнике, щелкнув правой кнопкой мыши и попытавшись создать файл - вы должны получить приглашение UAC. Итак, если вы хотите писать в C: \, тогда ваше приложение должно запускаться от имени администратора, с помощью подходящего манифеста, требующего повышения прав, или путем запуска отдельного процесса, когда вы хотите писать в это место.

Application Data, Environment. Однако SpecialFolder.ApplicationData должен работать. Если вы выведете реальный каталог, который вернет, что вы получите?

11
ответ дан 2 December 2019 в 21:03
поделиться

Я могу только представить, что приложение должно работать в контексте пользователя, у которого нет доступа к локальному диску, например, веб-сайт ASP.NET, работающий под анонимной учетной записью IIS или сервисный аккаунт, который имеет доступ только к соответствующим сетевым местоположениям.

2
ответ дан 2 December 2019 в 21:03
поделиться

Скорее всего, внешний диск отформатирован с FAT. FAT не поддерживает управление правами для пользователей, так что сохранение можно.

Кроме того, у пользователя IIS нет прав на другие папки, как уже упоминал Адам

1
ответ дан 2 December 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: