以文本或 xml 形式保存文件,具体取决于选中的单选按钮

Save a file in text or xml depending on which radio button is checked

我有一个应用程序允许用户检索 json 或 xml 中的部分数据,具体取决于 selected 哪个单选按钮,数据被解析然后显示在一些 Window 申请表控件。他们可以选择将控件内的数据保存在文本文件或 XML 文件中,具体取决于他们 select.[=12 中的哪个单选按钮(用于检索数据的单选按钮相同) =]

每次我保存文件时,无论选择哪个单选按钮 select,它都不会以所选格式保存。当我在我的计算机上检查文件时,它只显示类型为 "File."

的空白文档图标

我的代码看起来与此类似,它位于一个按钮内:

SaveFileDialog newData  = new SaveFileDialog();

        if (newData.ShowDialog() == DialogResult.OK)
        {
            if (jsonRB.Checked)
            {
                newData.DefaultExt = "txt";

                string dataPath = newData.FileName;

                using (StreamWriter newFile = new StreamWriter(File.Create(dataPath)))
                {
                    //Writing string to save data

                }

            }
            else 
            {
                newData.DefaultExt = "xml";

                XmlWriterSettings adjust = new XmlWriterSettings();
                adjust.ConformanceLevel = ConformanceLevel.Document;

                adjust.Indent = true;


                using (XmlWriter newFile = XmlWriter.Create(newData.FileName, adjust))
                {
                    //writing data
                    newFile.WriteEndElement();

                }

            }
        }

这应该可以解决问题:

SaveFileDialog saveDlg = new SaveFileDialog();
if(jsonRB.Checked)
{
    //The default selected extension
    saveDlg.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
    //this is used if you select All files (*.*) but omit a extension
    saveDlg.DefaultExt = "txt"; 
}
else
{
    saveDlg.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.*";
    saveDlg.DefaultExt = "xml";
}
if(saveDlg.ShowDialog() == DialogResult.OK)
{
    if (jsonRB.Checked)
    {
        //Save JSON
    }
    else
    {
        //Save XML
    }
}