【C#】オープンファイルダイアログ-ファイル指定(フィルター)

ファイルを開く際、ダイアログを表示してファイルを選ばせる方法は「【C#】オープンファイルダイアログ-初期フォルダの設定」を参照下さい。

ここでは、下記ダイアログのようにフィルターを使ってファイル(拡張子)の表示を制限する方法を記載します。




 ファイル指定(フィルター)


選択できるファイルを「Excelに限定したい」「テキストファイルに限定したい」という場合、~.Filterを用います。複数ある場合、初期表示を指定するには~.FilterIndex = 1 ~を用います。

 ▽指定するファイルが1種類の場合、"表示用の文言 | 表示する内容" と記述します
OFD.Filter = "Text Files (*.txt)|*.txt";

 ▽指定するファイルが1種類で複数拡張子がある場合、セミコロン(;)で区切ります
OFD.Filter = "Excel File(*.xls;*.xlsx)|*.xls;*.xlsx";

 ▽指定するファイルが2種類以上の場合、パイプ(|)を使って記述します。
  初期値をExcel Fileにしたい場合はFilterIndex(初期値は1)を用います。
OFD.Filter = "Text Files (*.txt)|*.txt|Excel File(*.xls;*.xlsx)|*.xls;*.xlsx";
OFD.FilterIndex = 2;

一連の処理を通して記述すると下記となります。

/* インスタンスの初期化 */
OpenFileDialog OFD = new OpenFileDialog();

/* 初期フォルダ:マイドキュメント */
OFD.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

/* フィルター:Text、Excel */
OFD.Filter = "Text Files (*.txt)|*.txt|Excel File(*.xls;*.xlsx)|*.xls;*.xlsx";

/* フィルター初期値:Excel */
OFD.FilterIndex = 2;

/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
  /* ファイル名を表示する */
  MessageBox.Show(OFD.FileName);
}

管理人 について

趣味:映画鑑賞・音楽鑑賞・ゲーム・旅行 仕事:会社員(IT関連)
カテゴリー: C#, システム開発 パーマリンク

コメントを残す