2014-09-21 2 views
-1

Хорошо, поэтому я рассмотрел все другие вопросы, связанные с моей проблемой, и не вижу, где я ошибаюсь. Моя цель - записать результаты симулятора кости в текстовый файл, а затем прочитать это содержимое в списке на C#. Вот мой код до сих пор:Проблемы с чтением и записью в текстовый файл в C#

namespace WpfApplication1 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 

    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 
      Random RandomValue = new Random(); 
      Random RandomValue2 = new Random(); 

      using (StreamWriter outputFile = new StreamWriter("C:\\Example.txt")) 
      { 

       for (int i = 0; i < 100; i++) 
       { 

        int face1 = RandomValue.Next(1, 7); 
        int face2 = RandomValue2.Next(1, 7); 
        int toss = face1 + face2; 

        outputFile.WriteLine(toss); 

       } 

       outputFile.Close(); 
      } 

     } 
     catch (Exception ex) 
     { 

      listBox1.Items.Add(ex); 
     } 

    } 

    private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 

      using (StreamReader inputFile = new StreamReader("C:\\Example.txt")) 
      { 

      String toss; 
      for (int i = 0; i > 100; i++) 
      { 
       toss = inputFile.ReadLine(); 
       listBox1.Items.Add(toss); 
      } 

     catch (Exception ex) 
     { 
      listBox1.Items.Add(ex); 
     } 
     } 
     } 
    } 
} 

При попытке запуска программы я получаю сообщение об ошибке: System.UnauthorizedAccessException: Access to the path 'C:\Example.txt' is denied.

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

+5

Попробуйте использовать Visual Studio как * Administrator *. –

+1

Используйте каталог, в котором вам не нужны повышенные привилегии для записи, такие как 'Path.GetTempPath()' –

+1

Чтобы уточнить, если UAC включен, корень диска C: ограничен, чтобы остановить приложения там. Корень раздела D: будет работать, но наилучшей практикой является каталог в области учетной записи пользователя. – WhoIsRich

ответ

0

Хорошо, сначала я хочу поблагодарить всех вас за помощь. Я нашел, где я ошибся, и почему он работает неправильно. Во-первых, запуск C# в качестве администратора решил проблемы с доступом, спасибо Selman22. После этого он просто записывал файл, но не читал файл и не переводил цифры в список. После просмотра кода более подробно я понял, что объявляя цикл для запуска до тех пор, как я был больше, чем 100, а не меньше:

for (int i = 0; i > 100; i++)

После изменения для постановки на:

for (int i = 0; i < 100; i++)

Теперь он работает гладко. Еще раз спасибо!