2013-06-03 5 views
2

У меня возникли проблемы с созданием .txt-файла с кодом ниже. Я получаю исключение следующим образом:C#, Создание файла .txt

Необработанное исключение: System.unauthorizedAccessException: Доступ к путь 'C: \ log.txt' отрицается.

Я посмотрел онлайн и сделал схожие вещи с тем, что находится на api. Ниже мой код, так что вы можете понять, что мой логический ход. Как вы думаете, что вызывает это исключение? Заранее спасибо!

static StreamWriter swt; 
static string logFile = @"C:\log.txt"; 
static FileStream fs; 
static void Main(string[] args) 
{ 
    Console.Out.WriteLine(swt); 
    string root = args[0];      
    if (!File.Exists(logFile)) 
    { 
     try 
     { 
      fs = File.Create(logFile); 
     } 
     catch (Exception ex) 
     { 
      swt.WriteLine("EXCEPTION HAS BEEN THROWN:\n " + ex + "\n"); 
     } 
     { 

     } 
    } 
} 
+9

Я предполагаю, что у вас недостаточно правы, чтобы писать непосредственно в 'C:' корень. Попробуйте запустить вашу программу в качестве администратора или напишите в доступный каталог (например, Мои документы) –

+0

Позвольте мне попробовать, спасибо – haysam

+0

Ваша программа работает в административном режиме? –

ответ

9

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

+0

+1, дополнительно: ** не записывайте в папки, требующие повышенных разрешений **. – user7116

2

Определите права доступа к папке. Он должен иметь разрешение на запись зарегистрированного пользователя.

2

Да, это ошибка разрешения. У вас недостаточно прав на запись файла на диск C :. Для записи в этих типах папки/диска вам нужно разрешение администратора.

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

Solution Explorer -> ваш проект -> Добавить новый элемент (щелкните правой кнопкой мыши) -> Файл манифеста приложений.

В этом изменении файла requestedExecutionLevel в

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

Это исполнение приложения только с правами администратора. В Windows 8/7/Vista он отобразит диалоговое окно UAC (User Access Control) при запуске приложения.

Надеется, что это поможет ....

Смежные вопросы