いくつかの質問を調査しましたが、見つけた答えはどれも役に立ちませんでした。この関数の目的は、xml ファイルを変更することです。元のファイルを読み取り、古いものと新しいものを新しいファイルに書き込みます。これはすべて完璧に機能します。問題は、完了したときに古いファイルを削除して新しいファイルを移動する必要があるときに発生します。
受け取ったエラーは、jnv_config.xml が別のプロセス (リーダー ファイル) によって使用されているというものです。
Close や Dispose を削除しても問題は解決しません。
using (XmlReader reader = XmlReader.Create("jnv_config.xml"))
using (XmlWriter writer = XmlWriter.Create("jnv_temp.xml"))
{
writer.WriteStartDocument();
while (reader.Read())
{
// Read the file, write to the other file - this part works perfectly.
// No filestreams nor anything else is created in here.
}
writer.WriteEndElement();
writer.WriteEndDocument();
reader.Close();
writer.Close();
reader.Dispose();
writer.Dispose();
}
// Delete the old file and copy the new one
File.Delete("jnv_config.xml");
//File.Move("jnv_temp.xml", "jnv_config.xml");
VS2012 (NET 4.5)、C#、標準 Windows フォーム プロジェクトを使用しています。