2017-06-18 7 views
0

ラジオボタンが選択されているかどうかに応じて、ユーザーがjsonまたはxmlで部分データを取得できるアプリケーションがあります。ウィンドウアプリケーションフォームコントロール。彼らは、テキストファイルまたはXMLファイルのいずれか(データを取得するために使用された同じラジオボタン)ラジオボタンに応じて、コントロール内のデータをテキストファイルまたはXMLファイルに保存するオプションを持っています。どのラジオボタンがチェックされているかに応じて、テキストまたはXMLでファイルを保存します。

ファイルを保存するたびに、どのラジオボタンが選択されているかに関係なく、選択した形式でファイルが保存されません。コンピュータ上のファイルをチェックすると、「ファイル」という種類の空のドキュメントアイコンが表示されます。

私のコードは次のようになり、それがボタン内です:これはトリックを行う必要があります

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

       } 

      } 
     } 
+0

にShowDialog() 'を呼び出す前に' DefaultExt'を設定してみてください '指摘したようにここで:[FileDialog.DefaultExtプロパティ](https://msdn.microsoft.com/en-us/library/system.windows.forms.filedialog.defaultext(v = vs.110).aspx) –

答えて

1

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 
    } 
} 
関連する問題