Ошибка IoException при нажатии кнопки сохранения - PullRequest
1 голос
/ 14 декабря 2010

Beloew - это мой код, в котором я хочу сохранить некоторую информацию, которую пользовательский ключ вводит в файл, почему я продолжаю сталкиваться с ошибкой Ioexception после отладки и нажимаю кнопку сохранения ... пожалуйста, любезно adv..thks! !! Я думаю, это как-то связано с папкой, но понятия не имею ..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace ASSISNMENTTT
{
    public partial class Registeration : Form
    {
        public Registeration()
        {
            InitializeComponent();
        }

        private void Btn_Save_Click(object sender, EventArgs e)
        {
            // This is the button labeled "Save" in the program.
            //
            File.WriteAllText("C:\\demo.txt", Tb_Admin.Text);
            File.WriteAllText("C:\\demo.txt", Tb_Name.Text);
            File.WriteAllText("C:\\demo.txt", Tb_Gender.Text);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 14 декабря 2010

Если ваше приложение имеет доступ к диску C: \, файл demo.txt, скорее всего, помечен как доступный только для чтения, поскольку WriteAllText попытается перезаписать файл.

Этот кодпоказывает исключение UnauthorizedAccessException с тем же текстом ошибки, что и при комментировании вашего вопроса и другого ответа.

static void Main(string[] args)
{
    var demoTxt = new FileInfo("C:\\demo.txt");
    demoTxt.Attributes |= FileAttributes.ReadOnly;

    WriteAllText("should succeed");


    try
    {
        demoTxt.Attributes |= FileAttributes.ReadOnly;
        WriteAllText("should fail");
    }
    catch (UnauthorizedAccessException uae)
    {
        Debug.WriteLine(uae.ToString());
    }
}

static void WriteAllText(string text)
{
    // This is the button labeled "Save" in the program.
    //
    File.WriteAllText("C:\\demo.txt", text);
}

Для дальнейшего использования это может помочь вам предоставить дополнительную информацию для сообщений SO.

    private void Btn_Save_Click(object sender, EventArgs e)
    {
        try
        {
            // This is the button labeled "Save" in the program.
            //
            File.WriteAllText("C:\\demo.txt", Tb_Admin.Text);
            File.WriteAllText("C:\\demo.txt", Tb_Name.Text);
            File.WriteAllText("C:\\demo.txt", Tb_Gender.Text);
        }
        catch(IoException ex)
        {
            //View the Output Window, copy the text to your question
            System.Diagnostics.Debug.WriteLine(ex.ToString());
        }
    }
0 голосов
/ 14 декабря 2010

Скорее всего, вы используете Win7 или Vista и не имеете доступа к диску c: \.

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