SaveFileDialog现有文件

时间:2014-06-25 15:44:53

标签: c# xml savefiledialog

我正在使用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);

1 个答案:

答案 0 :(得分:0)

如果您使用FileStream和StreamWriter,则需要先指定Stream的类型。

FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write);

FileMode.Append将创建文件(如果它不存在),并附加存在的文件。

然后在StreamWriter中使用它

StreamWriter sw = new StreamWriter(fileSTream, Encoding.Default);

如果你不使用这种流或作者,总会有类似的东西可用。