「保存」ボタンがあるので、ユーザーがクリックすると、xmlファイルの保存(xmlシリアル化)が行われます。ここではsavefiledialogが使用されており、ファイルを選択せずにキャンセルを押すと、「引数例外」が発生し、「空のパス名は無効です」と表示されます。この例外を処理するにはどうすればよいですか?savefiledialogでパスが選択されていなくても、フォームを同じままにしたいと思います。どうもありがとう。
私のsavefiledialogスニペット:
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
string savepath;
SaveFileDialog DialogSave = new SaveFileDialog();
// Default file extension
DialogSave.DefaultExt = "txt";
// Available file extensions
DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
// Adds a extension if the user does not
DialogSave.AddExtension = true;
// Restores the selected directory, next time
DialogSave.RestoreDirectory = true;
// Dialog title
DialogSave.Title = "Where do you want to save the file?";
// Startup directory
DialogSave.InitialDirectory = @"C:/";
DialogSave.ShowDialog();
savepath = DialogSave.FileName;
DialogSave.Dispose();
DialogSave = null;
...
using (Stream savestream = new FileStream(savepath, FileMode.Create))
{
XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
serializer.Serialize(savestream, formsaving);
}
}
私の引数の例外は次の行で発生します:
using (Stream savestream = new FileStream(savepath, FileMode.Create))
{
XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
serializer.Serialize(savestream, formsaving);
}