문제

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top