StreamWriter недостаточно привилегий при UnauthorizedAccessException

#c# #exception #streamwriter

#c# #исключение #StreamWriter

Вопрос:

Я использую следующий код для записи файла на рабочий стол.

 string submittedFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
int i = 0;
StreamWriter sw = null;
sw = new StreamWriter(submittedFilePath, false);

for (i = 0; i < PSOLib.table.Columns.Count - 1; i  )
{
    sw.Write(PSOLib.table.Columns[i].ColumnName   ";");
}

sw.Write(PSOLib.table.Columns[i].ColumnName);
sw.WriteLine();

foreach (DataRow row in PSOLib.table.Rows)
{
    object[] array = row.ItemArray;

    for (i = 0; i < array.Length - 1; i  )
    {
        sw.Write(array[i].ToString()   ";");
    }

    sw.Write(array[i].ToString());
    sw.WriteLine();
}

sw.Close();
  

Однако всякий раз, когда я пытаюсь вызвать метод, я получаю:

 Access to the path 'C:\Users\User\Desktop' is denied. 
System.UnauthorizedAccessException.
  

Комментарии:

1. Я проверил привилегии. Они, как и ожидалось.

2. Здесь вы записываете в папку, в то время как вы должны записывать в файл..

Ответ №1:

Вы указали не файл для вашего StreamWriter , а папку.

Это должно сделать это:

 string submittedFilePath = 
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)   "\myFile.txt.";
  

Комментарии:

1. Понял. Глупый я! Спасибо.

2. Большое вам спасибо за это. Я изо всех сил пытался понять, почему это не работает. Я не могу проголосовать за это достаточно! даже спустя годы вы все еще помогаете 🙂