ユーザーが入力したファイル名に拡張子を付けて適用しようとしSaveFileDialog
ています。質問 389070FileOpenDialog
で提案されたサンプルを使用してみましたが、意図したとおりに動作しません。
var dialog = new SaveFileDialog())
dialog.AddExtension = true;
dialog.DefaultExt = "foo";
dialog.Filter = "Foo Document (*.foo)|*.foo";
if (dialog.ShowDialog() == DialogResult.OK)
{
...
}
test
ユーザーがたまたまファイルが存在するフォルダーにテキストを入力test.xml
すると、ダイアログは名前を提案しますtest.xml
(実際*.foo
にはリストでのみ表示したいのですが)。さらに悪いことに、ユーザーが を選択test.xml
すると、実際にtest.xml
出力ファイル名として取得されます。
SaveFileDialog
ユーザーがファイルを選択できるようにするにはどうすればよい*.foo
ですか? または、少なくとも、ユーザーがクリックしたときに拡張機能を置き換え/追加することはありますSave
か?
ファイル名の拡張子が間違っている場合はボタンFileOk
を無効にしたいので、提案された解決策(イベントハンドラーを実装する)は仕事の一部しか実行しません。Save
ダイアログにとどまり、ハンドラーのテキスト ボックスに表示されるファイル名を更新FileOk
し、新しいファイル名を正しい拡張子で反映するには、次の関連する質問を参照してください。