我正在使用C#中的savefiledialog,我允许用户将xml节点保存到文件中,但是如果用户选择创建新文件并将节点保存在其中,则可以正常工作但是当用户选择保存时到现有文件然后它被覆盖。我需要的是它加载文件,我可以在其中附加节点,谢谢
Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
sfd.FileName = "untitled"; // Default file name
sfd.DefaultExt = ".xml"; // Default file extension
sfd.Filter = "Xml documents (.xml)|*.xml";
Nullable<bool> result = sfd.ShowDialog();
if (result == true)
{
if (System.IO.Path.GetExtension(sfd.FileName) != ".xml")
{
MessageBox.Show("You can only choose files with .xml extensions");
return;
}
this.save_xml_file(sfd.FileName);
}
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", "no");
doc.AppendChild(docNode);
XmlNode fubiRec = Doc.CreateElement("FubiRecognizers");
XmlAttribute conf = Doc.CreateAttribute("globalMinConfidence");
conf.Value = "0.51";
fubiRec.Attributes.Append(conf);
doc.AppendChild(fubiRec);
XmlAttribute gestureAttribute = doc.CreateAttribute("name");
gestureAttribute.Value = gestureName;
gestureNode.Attributes.Append(gestureAttribute);
fubiRec.AppendChild(gestureNode);
答案 0 :(得分:0)
如果您使用FileStream和StreamWriter,则需要先指定Stream的类型。
FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write);
FileMode.Append将创建文件(如果它不存在),并附加存在的文件。
然后在StreamWriter中使用它
StreamWriter sw = new StreamWriter(fileSTream, Encoding.Default);
如果你不使用这种流或作者,总会有类似的东西可用。