«System.UnauthorizedAccessException» при извлечении файла на рабочий стол - PullRequest
3 голосов
/ 10 марта 2019

Я создал скрипт для извлечения исполняемого файла из Resources на рабочий стол. Это работает на моей машине, но не будет работать на чужих машинах из-за другого имени пользователя. Следующий скрипт отлично работает:

private void button1_Click(object sender, EventArgs e)
{
    byte[] myfile = Properties.Resources.SOMETHING;
    File.WriteAllBytes("C:\\Users\\Alex\\Desktop\\SOMETHING.exe",myfile);
}

Я провел некоторое исследование и обнаружил, что мне нужно использовать (Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

Итак, я скомпилировал этот скрипт:

private void button1_Click(object sender, EventArgs e)
{
    byte[] myfile = Properties.Resources.SOMETHING;
    File.WriteAllBytes(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),myfile);
}

Проблема в том, что в моем коде нет ошибки, но когда я ее запускаю и нажимаю на кнопку, я получаю следующую ошибку:

Сообщение System.UnauthorizedAccessException = Доступ к пути «C: \ Users \ Alex \ Desktop» запрещен.

Я пытался запустить код с правами администратора, но это также не помогло.

1 Ответ

0 голосов
/ 10 марта 2019

Используйте свойство File.SetAttributes(myfile, FileAttributes.Normal); перед чтением файла, оно должно работать.

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