C #, работа с файлами «Несанкционированный доступ»? - PullRequest
3 голосов
/ 25 декабря 2010

Я узнаю об открытии и сохранении файлов с помощью C #, и кажется, что Vista не позволит моей программе сохранить файл в корне C: \, если я не запущу его в режиме администратора.

Любые идеи, как разрешить моей программе играть с любыми файлами, которые она хочет?

Спасибо!

private string name;

private void open_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        name = openFileDialog1.FileName;
        textBox1.Clear();
        textBox1.Text = File.ReadAllText(name);
        textBox2.Text = name;
    }
}

private void save_Click(object sender, EventArgs e)
{
    File.WriteAllText(name, textBox1.Text);
}

Ответы [ 3 ]

5 голосов
/ 25 декабря 2010

Чтобы ваша программа запускалась с правами администратора, вам нужно изменить манифест.Это можно сделать, добавив новый элемент -> Общие -> Файл манифеста приложения.Откройте манифест и задайте для параметра «requestExecutionLevel» значение «requireAdministrator».После этого откройте настройки проекта и на вкладке «Приложение» выберите новый манифест.

4 голосов
/ 25 декабря 2010

Программа будет работать с вашими учетными данными, по умолчанию.

Таким образом, у них нет прав на запись в корневую папку.

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

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

1 голос
/ 02 августа 2013

Есть несколько причин для исключения UnauthorizedAccess. Отметьте один из них:

  • указан путь к файлу, доступному только для чтения.

  • Эта операция не поддерживается на текущей платформе.

  • путь, указанный в каталоге.

Сегодня я случайно столкнулся с третьей проблемой; -)

...