【C#】オープンファイルダイアログ-複数ファイル選択
ファイルを開く際、ダイアログを表示してファイルを選ばせる方法は「
【C#】オープンファイルダイアログ-初期フォルダの設定」を参照下さい。
ここでは、下記ダイアログのように複数のファイルを選択可能にし、ファイル名を取得する方法を記載します。(デフォルトは1ファイルのみ)
複数ファイル選択
複数ファイルの選択を可能にする場合には
~.Multiselect =
trueを用い、ダイアログを表示(ShowDialog)する前に記述します。
▽
1ファイルのみ選択可能にする場合
OFD.Multiselect = false;
▽
複数ファイルを選択可能にする場合
OFD.Multiselect = true;
ファイル名の取得
ファイル名を取得するには、1ファイルの場合は
~.FileNameを用い、複数ファイルの場合は
~.FileNamesを用い、ファイルが選択された場合(~.ShowDialog() == DialogResult.OK)に記述します。
複数ファイルの場合に ~.FileName を使うと、先頭の1ファイルのみ取得できます。
▽ 1ファイルの場合
/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(OFD.FileName);
}
▽ 複数ファイルの場合(1ファイルでも可)
/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
foreach ( string strFileName in OFD.FileNames )
{
MessageBox.Show(strFileName);
}
}
一連の処理を通して記述すると下記となります。
/* インスタンスの初期化 */
OpenFileDialog OFD = new OpenFileDialog();
/* タイトルの設定 */
OFD.Title = "Excelファイルを選択してください";
/* 初期フォルダ:マイドキュメント */
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;
/* ファイルの存在チェックをする */
OFD.CheckFileExists = true;
/* 複数ファイルを選択可 */
OFD.Multiselect = ture;
/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
foreach ( string strFileName in OFD.FileNames )
{
MessageBox.Show(strFileName);
}
}
関連
管理人 について
趣味:映画鑑賞・音楽鑑賞・ゲーム・旅行
仕事:会社員(IT関連)