"저장"버튼이 있으므로 사용자가 클릭하면 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);
}
대신에'DialogSave.Dispose()'를 쓰면 쓸 수 있습니다. – Oliver
@Oliver - 동의합니다. OP 코드에 많은 변경을 가하지 않기 위해 코드를 작성했지만, 메소드의 시작 부분에있는 SaveFileDialog를 사용하면 갈 수 있습니다. –
wpf를 사용하고 있는데 "DialogResult.OK"에 문제가있는 것 같습니다.이 오류가 발생합니다. 'System.Nullable'에는 'OK'에 대한 정의가없고 첫 번째 인수를 허용하는 'OK'확장 메서드가 없습니다. 'System.Nullable '타입을 찾을 수 없습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) –
jeremychan