私は、基本的なXMLファイルを作成し、保存し、簡単なC#の機能を持っている:常にXmlDocumentの保存はファイル続けるオープン
private void CreateXMlFile(string Filename, string Name, string Company)
{
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode licenseNode = doc.CreateElement("license");
doc.AppendChild(licenseNode);
XmlNode node = doc.CreateElement("Name");
node.AppendChild(doc.CreateTextNode(Name));
licenseNode.AppendChild(node);
node = doc.CreateElement("Company");
node.AppendChild(doc.CreateTextNode(Company));
licenseNode.AppendChild(node);
doc.Save(Filename);
}
私は、私はいつも次のエラーを取得編集したり、ファイルを削除しよう:
をThe process cannot access the file because it is being used by another process.
XmlDocumentはどのようなinbuiltの処理ルーチンやクローズルーチンも持っていませんし、後で編集または削除する前にファイルを閉じるように強制することができますか?
私はのStreamWriterを使用してファイルを保存しようとしています
StreamWriter outStream = System.IO.File.CreateText(outfile);
outStream.Write(data);
outStream.Close();
しかし、このdidntのは同じエラーとの違いを作ります。
あなたのアドバイスは大いに受け入れられます。
ありがとうございました
保存するファイル名を渡すのではなく、ストリーム書き込みのインスタンスで書き込もうとしましたか? – Steve
同じ問題がありましたが、存在していれば私のコードはXMLを最初にロードしていました。ファイルのロックが解除される前に 'XmlReader'オブジェクトを閉じる必要がありました。 –