none
problema de escritura y cerrado de archivos RRS feed

  • Pregunta

  • mi problema es el siguiente:

    leo un archivo de esta forma

    string men1 = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\MiSitio\mensaje1\1.txt");

    System.IO.StreamReader file1 = new System.IO.StreamReader(men1);

    Label1.Text = file1.ReadLine();

    file1.Close();

    Y mi problema radica en que cuando quiero llamarlo de nuevo para modificar su contenido

    StreamWriter fichero; //Clase que representa un fichero

    fichero = File.CreateText(ruta); //Creamos un fichero

    fichero.WriteLine(TextBox1.Text); // Lo mismo que cuando escribimos por consola fichero.Close(); // Al cerrar el fichero nos aseguramos que no queda ningún dato por guardar

    me sale este error, si me pueden ayudar gracias

    El proceso no puede obtener acceso al archivo 'C:\Users\Administrador\Desktop\Ultima\MiSitio\MiSitio\mensaje1\7.txt' porque está siendo utilizado en otro proceso.

    viernes, 27 de diciembre de 2019 8:43

Todas las respuestas

  • No es suficiente con cerrarlo llamando a file1.Close(). Acuérdate de llamar a file1.Dispose(). Idealmente, mételo todo en un bloque "using" para que el Dispose se invoque automáticamente:

    string men1 = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\MiSitio\mensaje1\1.txt");
    
    using (System.IO.StreamReader file1 = new System.IO.StreamReader(men1))
    {
        Label1.Text = file1.ReadLine();
    }
    
    

    Una vez hecho esto, el Close ya no es necesario porque el Dispose ya hace internamente Close.

    viernes, 27 de diciembre de 2019 8:48
    Moderador
  • hola

    Para leerlo porque no usas

    File.ReadAllText()

    en lugar de tener que abrir el StreamReader

    Y para escribir usar

    File.AppendAllText()

    asi realizas las operaciones directo sin tanto codigo

    y el archivo se libera

    Igualmente la recomendacion del using que realiza Alberto es lo correcto si vas a usar el objeto StreamReader

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de diciembre de 2019 16:29