3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net)SaveFileDialogで保存したファイルに拡張子がつかない

ファイルの保存ダイアログを SaveFileDialog で実装しようとしてました。

SaveFileDialog の AddExtension プロパティを true にすると現在のフィルタで選んでいる拡張子が自動的に付きます。

(デフォルトでAddExtensionはtrueです)

しかし、なぜか拡張子が付きません。。。

原因は、ファイル保存ダイアログを表示する前に SaveFileDialog.FileName でファイル名を指定してたんですが、それに "." があったためでした。

下記のような感じだったわけです。(C#)

SaveFileDialog dlg = new SaveFileDialog();

dlg.FileName = "2011.3.1";

dlg.Filter = "textファイル(*.txt)|*.txt|csvファイル(*.csv)|*.csv|すべてのファイル(*.*)|*.*";

dlg.AddExtension = true;

//ダイアログを表示する

if (dlg.ShowDialog() == DialogResult.OK)

{

MessageBox.Show(dlg.FileName);

}

どうやら FileName に "."(ドット/ピリオド) にあると拡張子が既にあると判断されて、つけてくれないようですね。

厄介な仕様です。