XDocument를 사용하여 사용을 위해 FileStream을 올바르게 여는 방법
-
07-07-2019 - |
문제
LINQ2XML을 사용하여 일부 노드를 XML 문서에 추가하고 싶습니다. 해당 파일은 다른 프로세스에서 사용 중이며 파일을 업데이트하는 동안 파일을 읽을 수 있어야합니다. 그래서 나는이 솔루션을 생각해 냈습니다.이 솔루션은 분명히 올바른 방법이 아닙니다 (Method Doc.Save ()가 실패하고 다른 프로세스가 파일을 사용하고 있다고 말합니다).
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();
}
모든 도움은 크게 감사합니다.
해결책
문서를로드하고 스트림을 닫고 다시 저장하십시오. 그것은 또한 당신이 그것을 더 간단하게 열 수 있다는 것을 의미합니다 :)
XDocument doc;
using (StreamReader reader = File.OpenText(filename))
{
doc = XDocument.Load(reader);
doc.Root.Add(entry);
}
doc.Save(filename);
제휴하지 않습니다 StackOverflow