Quiero agregar algunos nodos a un documento xml usando Linq2XML. El archivo en cuestión está siendo utilizado por otros procesos y deberían poder leer el archivo mientras lo actualizo. Así me ocurrió con esta solución, que obviamente no es la forma correcta (El método doc.Save() falla y dice que otro proceso está utilizando el archivo):Cómo abrir correctamente un FileStream para su uso con un XDocument
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
doc = XDocument.Load(new StreamReader(fs));
doc.Root.Add(entry);
doc.Save(filename);
fs.Close();
}
Cualquier ayuda es appreceated en gran medida.
gracias por su respuesta, jon. si uso esta versión, ¿puedo asegurarme de que otros procesos puedan abrir el mismo archivo para el acceso de lectura? – Mats
Bueno, no pueden leerlo cuando llamas a Save ... ¿es eso un problema? No puedo recordar lo que File.OpenText hace en términos de compartir, pero puede verificar y usar fácilmente un constructor de StreamReader haciendo lo correcto si es necesario. –