ファイルダイアログ画面でファイルを選択すれば、存在しないファイルが選ばれる事はありませんが、手入力でファイル名が入力できるので、ファイルの読み込み処理を前提とした場合、ファイルチェックが重要です。
ファイルの存在チェックは System.IO.File.Exists(fileName) で出来ますが、OpenFileDialog 内で簡単に存在チェックの機能を設定する事ができます。(デフォルトは「チェックする(True)」)
ファイル存在チェック
ファイルの存在チェックをする場合には~.CheckFileExists = trueを用い、ファイルの存在チェックをしない場合には~.CheckFileExists = falseを用い、ダイアログを表示(ShowDialog)する前に記述します。
▽ ファイルの存在チェックをする場合
OFD.CheckFileExists = true;
▽ ファイルの存在チェックをしない場合
OFD.CheckFileExists = false;
一連の処理を通して記述すると下記となります。
/* インスタンスの初期化 */
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;
/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(OFD.FileName);
}
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;
/* ダイアログを表示し「開く」場合 */
if (OFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(OFD.FileName);
}
尚、フォルダのチェックするCheckPathExistsプロパティがありますが、存在しないフォルダ+ファイル名を入れてもエラーが発生するので、こちらはイマイチ用途が不明です。