基本的に、SaveFileDialog のフィルターを次のように設定しようとしています...「Xml ドキュメント ( .asdf.xml) | .asdf.xml」。ファイルを選択するときにファイルを正しくフィルタリングしますが、実際にファイルを保存すると、「.xml」としてのみ保存されます。これもサポートされていますか?
ほとんどの回避策では、ユーザーが知らないうちにファイル名を手動で変更する必要があるように見えるため、適切な回避策も考えられません。
基本的に、SaveFileDialog のフィルターを次のように設定しようとしています...「Xml ドキュメント ( .asdf.xml) | .asdf.xml」。ファイルを選択するときにファイルを正しくフィルタリングしますが、実際にファイルを保存すると、「.xml」としてのみ保存されます。これもサポートされていますか?
ほとんどの回避策では、ユーザーが知らないうちにファイル名を手動で変更する必要があるように見えるため、適切な回避策も考えられません。
SupportMultiDottedExtensions = true;
これを試しましたか?
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "XML File (*.asdf.xml)|*.asdf.xml|All Files|";
sfd.SupportMultiDottedExtensions = true;
私は SaveFileDialog を使用してクイック ウィン フォームを作成することに挑戦し、問題なくマルチドット拡張子で保存するファイルを取得することができました。VS2010 と C# を使用しています。ボタンクリックイベントハンドラーのコードは次のとおりです。
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "Xml Document (.asdf.xml)|*.asdf.xml";
saveFileDialog1.ShowDialog();
System.IO.FileStream fs = saveFileDialog1.OpenFile() as System.IO.FileStream;
fs.Write(new byte[] { }, 0, 0);
fs.Close();
}
私のフィルターが使用したかどうかに関係なく機能しまし*.asdf.xml
た.asdf.xml
。
あなたのコードはどう違うのですか?同じ場合、新しいファイルを作成していますか、それとも既存のファイルを上書きしていますか? あなたのコードを見なければ、他に何が違うのかわかりません。
編集/更新: SupportMultiDottedExtension の設定に関する sgrassie の回答を見たところです。私は設定していないので、C#/.NET 4 ではデフォルトで true になっているのかもしれません。
チッ!