XmlDocument Enregistrer garde d'ouverture de fichier

J'ai un simple c# fonction qui crée un fichier XML et qui sauve:

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);
}

Lorsque j'essaie de modifier ou de supprimer le fichier j'obtiens toujours l'erreur suivante:

Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre
processus.

XmlDocument ne pas avoir tout intégré éliminer ou à proximité des routines et je me demandais comment je peux forcer le fichier pour fermer avant de les éditer plus tard ou de les supprimer.

J'ai essayé d'enregistrer le fichier à l'aide de StreamWriter:

StreamWriter outStream = System.IO.File.CreateText(outfile);
outStream.Write(data);
outStream.Close();

Mais ce n'est pas faire une différence avec le même message d'erreur.

Votre avis est largement accepté.

Merci

Avez-vous essayé de l'écrire avec une instance d'un flux d'écriture au lieu de passer le nom de fichier pour enregistrer?
J'ai eu le même problème, mais mon code était en train de charger le XML d'abord si elle existait. Le XmlReader objet devait être fermé avant que le verrou sur le fichier a été libéré.

OriginalL'auteur Belliez | 2012-02-17