I want to append some nodes to an xml document using Linq2XML. The file in question is being used by other processes and they should be able to read the file while I update it. So I came up with this solution, which obviously isn't the correct way (The method doc.Save() fails and says that another process is using the file):
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();
}
Any help is greatly appreceated.
Load the document, close the stream, save it again. That also means you can open it in a simpler way :)
XDocument doc;
using (StreamReader reader = File.OpenText(filename))
{
doc = XDocument.Load(reader);
doc.Root.Add(entry);
}
doc.Save(filename);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With