Tengo un simple # función c que crea un archivo XML básico y ahorra:XmlDocument Guardar mantiene presentar abierta
private void CreateXMlFile(string Filename, string Name, string Company)
{
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode licenseNode = doc.CreateElement("license");
doc.AppendChild(licenseNode);
XmlNode node = doc.CreateElement("Name");
node.AppendChild(doc.CreateTextNode(Name));
licenseNode.AppendChild(node);
node = doc.CreateElement("Company");
node.AppendChild(doc.CreateTextNode(Company));
licenseNode.AppendChild(node);
doc.Save(Filename);
}
Cuando trato de editar o borrar el archivo siempre consigo siguiente error:
The process cannot access the file because it is being used by another process.
XmlDocument no tiene ninguna disposición incorporada o rutinas cerradas y se preguntó cómo puedo forzar el cierre del archivo antes de editarlo o eliminarlo.
he tratado de guardar el archivo usando StreamWriter:
StreamWriter outStream = System.IO.File.CreateText(outfile);
outStream.Write(data);
outStream.Close();
Pero esto ni hacer una diferencia con el mismo error.
Su consejo es muy aceptado.
Gracias
¿Ha intentado escribirlo con una instancia de una secuencia de escritura en lugar de pasar el nombre del archivo para guardar? – Steve
Tuve el mismo problema, pero mi código estaba cargando el XML primero si existía. El objeto 'XmlReader' debe cerrarse antes de que se libere el bloqueo en el archivo. –