XmlDocument::Save() fügt der xml-Datei
Ich will, dass eine einzelne XmlDocument-Objekt in eine Klasse und lassen Methoden, die änderungen vornehmen und Sie speichern es.
using (FileStream fs = new FileStream(@"D:\Diary.xml",
FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fs);
.... make some changes here
xmlDoc.Save(fs);
}
Dem obigen code macht zwei Kopien der xml-Struktur innerhalb der Datei.
Warum verwenden Sie die FileStream-wenn Sie können geben Sie den Dateipfad zum Laden? Ich glaubst das Standardverhalten für die Datei zugreifen, ist das, was Sie angegeben haben.
Die XML-Datei aufgeteilt wird, verschiedene Module, die es Lesen (nicht schreiben). Ich möchte zu öffnen/Lesen und sperren, die für das schreiben in diesem Modul.
Die XML-Datei aufgeteilt wird, verschiedene Module, die es Lesen (nicht schreiben). Ich möchte zu öffnen/Lesen und sperren, die für das schreiben in diesem Modul.
InformationsquelleAutor A9S6 | 2010-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
vor dem Speichern rufen Sie
Warum muss dies getan werden?
Dies ist weil, er die gleiche filestream-zum laden der Datei (also nach dem laden ist die position am Ende der Datei. Aber was Sie tun möchten, ist zu kürzen, was bereits in den Strom vor dem schreiben des XML wieder.
InformationsquelleAutor Michal Ciechan
Hinzufügen:
vor dem Speichern aufrufen.
InformationsquelleAutor Foole
Scheint es ein wenig seltsam, dass die fs.Position von Foole, der die Lösung hat nicht funktioniert.
Einem äquivalent wäre
Alternativ
anstatt das gleiche filestream:
Richtig!!!! Für @LnDCobra Kommentar
InformationsquelleAutor Kamal
Alternativ auch das funktionieren würde...
Das wird nicht funktionieren, weil die Datei werden, die ich zu diesem Zeitpunkt, so kann ich nicht, nie, speichern Sie die Datei..
InformationsquelleAutor Bharath K