none
El proceso no tiene acceso al archivo RRS feed

  • Pregunta

  • Tengo el siguiente problema,

    Al escribir sobre un archivo XML, me sale un mensaje de error que dice: "El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso".

    El contexto es cuando quiero guardar una lista de correos en un archivo XML, utilizando "DOMDocument60". Aca les dejo la subrutina donde me da el error.

    Private Sub guardar_correos()
    
        Dim MisDocumentos As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Dim lista As String = ""
    
        Try
            'Ruta documento donde se guardaran los correos'
            Dim ruta As String = MisDocumentos & "\Kimun\config.xml"
    
            'Lee el xml creado anteriormente'
            Dim MiXml As New DOMDocument60
            MiXml.load(ruta)
    
            'guarda en una cadena los correos seleccionados'
            If (Check_correo1.Checked = True) Then
                lista = String.Format("{0}", valor_correo1.Text)
            End If
    
            If (Check_correo2.Checked = True) Then
                If (Check_correo1.Checked = True) Then
                    lista = String.Format("{0}, {1}", lista, valor_correo2.Text)
                Else
                    lista = String.Format("{0}", valor_correo2.Text)
                End If
            End If
    
            If (Check_correo3.Checked = True) Then
                If (Check_correo1.Checked = True Or Check_correo2.Checked = True) Then
                    lista = String.Format("{0}, {1}", lista, valor_correo3.Text)
                Else
                    lista = String.Format("{0}", valor_correo3.Text)
                End If
            End If
    
            If (Check_correo4.Checked = True) Then
                If (Check_correo1.Checked = True Or Check_correo2.Checked = True Or Check_correo3.Checked = True) Then
                    lista = String.Format("{0}, {1}", lista, valor_correo4.Text)
                Else
                    lista = String.Format("{0}", valor_correo4.Text)
                End If
            End If
    
            If (Check_correo5.Checked = True) Then
                If (Check_correo1.Checked = True Or Check_correo2.Checked = True Or Check_correo3.Checked = True Or Check_correo4.Checked = True) Then
                    lista = String.Format("{0}, {1}", lista, valor_correo5.Text)
                Else
                    lista = String.Format("{0}", valor_correo5.Text)
                End If
            End If
    
    
            'Modifica el XML'
            MiXml.selectSingleNode("Configuracion/Parametros/Correo").text = lista
    
            'Guarda los datos en el archivo xml'
            MiXml.save(ruta)
    
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Error al guardar correos")
        End Try
    End Sub

    El error sale en la linea MiXml.save(ruta).

    Acepto otras ideas de como hacer lo mismo.


    sábado, 30 de septiembre de 2017 3:38

Respuestas