Какие шаги я могу дать пользователю Windows, чтобы сделать данный файл доступным для записи - PullRequest
1 голос
/ 01 сентября 2008

Представьте, что у нас есть программа, которая пытается записать в определенный файл, но не удается.

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


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

Кроме того, я не совсем знаком с тем, как рассчитываются разрешения в Windows. Нужен ли пользователю доступ для записи в каждый каталог вверх по дереву или что-то в этом роде?

Ответы [ 4 ]

3 голосов
/ 01 сентября 2008

Некоторые предложения:

  • Нет разрешения на запись (получите разрешение через вкладку Безопасность в окне свойств файла; вы должны быть владельцем файла или администратором)
  • Файл заблокирован (закройте любую программу, в которой файл может быть открыт, затем перезагрузите компьютер, если это не поможет)
  • Для файла установлен атрибут DOS только для чтения (снимите его с окна свойств файла или с помощью attrib -r; вы должны быть владельцем файла или администратором)

Редактировать 1: только второй элемент (файл заблокирован) имеет возможное решение, которое все пользователи, вероятно, смогут обойтись без помощи. Для первого и третьего вы, вероятно, захотите предоставить руководство (и надеюсь, что файл не был сделан только для чтения намеренно!).

Редактировать 2: Технически, пользователю нужны права на запись и выполнение (chdir) для всех каталогов вплоть до корневого каталога. Windows может пропустить некоторые из рекурсивных проверок дерева в качестве оптимизации производительности, но вы не должны полагаться на это, потому что администраторы могут навязывать эти так называемые «обходные проверки» для определенных пользователей.

Редактировать 3: @RobM: Да, вы должны убедиться, что нет очевидных причин, по которым у пользователя не должно быть разрешений, которые ему нужны, но не имеют. Я упомянул об этом менее прямым способом в моем первом редактировании. Однако в некоторых случаях пользователи должны иметь разрешение на запись в файл, но не из-за повреждения файловой системы, неправильной работы программы или из-за ошибки с их стороны.

1 голос
/ 01 сентября 2008

Если у вас возникли проблемы с работой, если файл заблокирован, попробуйте использовать Unlocker - это действительно полезная бесплатная утилита, которая показывает вам процесс, который заблокировал файл, и позволяет вам принудительно разблокировать, если вы надо.

0 голосов
/ 01 сентября 2008

Давайте немного изменим это. Если ваша программа пытается записать в файл и не удается, вам нужно либо изменить местоположение файла на то, куда пользователь может записать, либо проверить правильные права при запуске программы и отказаться от запуска, если пользователь не есть они. Попирание системных разрешений не ответ.

0 голосов
/ 01 сентября 2008

Может ли Vista быть «помечена» как небезопасная, потому что она была загружена из Интернета, и вам нужно нажать кнопку разблокировки в диалоговом окне свойств проводника?

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