La Web del Programador: Comunidad de Programadores
 
    Pregunta:  52444 - SOBREESCRIBIR UN ARCHIVO
Autor:  Dario Reyes
HOla, tengo el siguiente problema, necesito modificar un archivo de texto de manera tal que se sobreescriban los datos ya existentes.
tengo la siguiente funcion que me agrega la info al final sin problemas pero lo que yo necesito es eliminar la informacion anterior y luego anexar esta, intente creando el archivo en blanco con file.WriteAllLines y .writealltext pero no me permite ya que el archivo se encuentra en uso... agredezco cualquier cooperacion.
Gracias.!

Public Function cambia_Ini(ByVal id_user As String, ByVal id_server As String, ByVal id_pswd As String) As String

'Abre un archivo para escritura.
Dim objEscritor As StreamWriter
Dim nuevos_datos
Dim ruta As String = Server.MapPath("cfg.ini")
objEscritor = File.AppendText(Server.MapPath("cfg.ini"))

'Escribe en el archivo
objEscritor.WriteLine("")
objEscritor.WriteLine("server=" & id_server)
objEscritor.WriteLine("user=" & id_user)
objEscritor.WriteLine("senia=" & id_pswd)

'Cierra el archivo.
objEscritor.Close()

End Function

  Respuesta:  Dario reyes venegas
Pues bien, ya encontre como solucionarlo, solo era tema de ordenar las instrucciones, adunto la funcion correjida y comentada.

Public Function cambia_Ini(ByVal id_user As String, ByVal id_server As String, ByVal id_pswd As String) As String

'Abre un archivo para escritura.
Dim objEscritor As StreamWriter
Dim nuevos_datos() As String = {""}
Dim ruta As String = Server.MapPath("cfg.ini")
' Abre el archivo, sobreescribe el contenido y lo cierra
File.WriteAllText(ruta, nuevos_datos(0))
' Vuelve a abrir el archivo para escribir los nuevos datos.
objEscritor = File.AppendText(Server.MapPath("cfg.ini"))
'Escribe en el archivo
objEscritor.WriteLine("server=" & id_server)
objEscritor.WriteLine("user=" & id_user)
objEscritor.WriteLine("senia=" & id_pswd)
'Cierra el archivo.
objEscritor.Close()

End Function