В настоящее время я пытаюсь создать некоторый код для добавления в мой XML-файл, он сначала проверит, создан ли файл, и если он ; он откроет файл, готовый для добавления.«процесс не может получить доступ к файлу, потому что он используется другим процессом» при написании XML
Но проблема в том, что я получаю вышеуказанное сообщение об ошибке на последней строке. Если я поставлю существующийFile.Close() перед этой строкой, ошибка исчезнет; но тогда данные не добавляются.
Не мог бы кто-нибудь помочь мне.
Я могу дать весь код, если кто пожелает, но я просто хотел бы дать бит, который дает мою ошибку на данный момент.
Код
if (System.IO.File.Exists(FullPath))
{
found = true;
System.IO.FileStream existingFile = System.IO.File.OpenWrite(FullPath);
existingFile.Seek(-endtag.Length, System.IO.SeekOrigin.End);
writer = new System.Xml.XmlTextWriter(FullPath, System.Text.Encoding.UTF8);
}
Почему вы сохраняете файл открытым после того, как вы его написали? Будет ли это решить проблему, если вы закроете ее после каждой записи и откройте ее с помощью флажка «Добавить»? – Default
Ваша основная проблема заключается в том, что вы передаете 'FullPath' (имя файла) в конструктор' XmlTextWriter', когда я думаю, что вы хотите передать 'existingFile' (поток). Это, вероятно, заставит код работать, но вы получите недопустимый XML. –
С другой стороны, это интересная идея: поиск назад конца тега. Вы должны быть уверены, что ваш 'XmlTextWriter' не пытается добавить заголовок xml, но если вы это сделаете, это может сработать. –