none
No puedo sobreescribir linea de un txt RRS feed

  • Pregunta

  • Saludos tengo un txt que deseo remplazar su contenido, pero no me deja al querer remplzarlo sale un msj que esta siendo ocupado por otro proceso, creo es cuando antes de querer remplazar se lee, no se si se cierra, pero ya no puedo guardar cambios.

    Esta es la indicación para leer primero

                       If IO.File.Exists("C:\GRUPOS\ARCHIVO.txt") Then
                            Label2.Text = File.ReadAllText("C:\GRUPOS\ARCHIVO.txt", System.Text.Encoding.UTF8)
    
                        Else
                            Dim file As System.IO.FileStream
                            file = System.IO.File.Create("C:\GRUPOS\ARCHIVO.txt")
                            Label2.Text = ""
                        End If

    esta es la indicacion 2 para guardar el cambio a remplazar del txt pero no logro hacer cambios, sale la leyenda de esta siendo utilizado por otro proceso y no guarda nada

     Dim lineas As String() = File.ReadAllLines("C:\GRUPOS\ARCHIVO.txt")
            lineas(0) = Label5.Text
            File.WriteAllLines("C:\GRUPOS\ARCHIVO.txt", lineas)
    
    

    domingo, 3 de mayo de 2020 19:17

Todas las respuestas

  • Seguramente el problema es que el fichero no existía y tu programa se ha metido por el "Else" donde usas un FieStream para crearlo. Esa instrucción deja el FileStream abierto, y por eso no puedes escribir las líneas en el fichero.

    La solución sería cerrar el FileStream. Pero hay otra opción más sencilla: No hace falta que crees de antemano el archivo vacío. Puedes directamente mandar a guardar información usando File.WriteAllLines; esta instrucción crea el fichero si no existe.

    • Propuesto como respuesta Sergio Parra domingo, 3 de mayo de 2020 22:41
    domingo, 3 de mayo de 2020 19:35
  • Hola Cael1020

     

    ¿Alguna actualización sobre la consulta realizada? ¿Alguna de las respuestas proporcionadas te ayudó?

     

    Espero tu respuesta.

     

    Gracias por usar los foros de MSDN.

     

     

    Luis Diego Mora

     

    --------------------------------------------------------------------------

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    lunes, 4 de mayo de 2020 13:31
    Moderador