LoginSignup
1
1

【Tips】「ファイルを開く」ダイアログでファイルのフルパスを取得したい【OpenFileDialog】

Last updated at Posted at 2023-03-07

1.概要

System.Windows.Forms.OpenFileDialogを使用し、ファイル選択ダイアログから選択したファイルのフルパス情報を取得する方法を記します。

環境
Visual Studio Community 2022
プロジェクトテンプレート:Windows フォーム アプリケーション(.Net Framework)
言語:C#

2.フォーム

2023-03-07.png
サンプルとして上記のようにフォームを構成したとします。
テキストボックスのnameをtextBox1
ファイル選択ボタンのnameをbutton1と仮定します。

3.コード

先にコードを記します。その後詳細を説明します。

Form.cs
/// <summary>
/// ファイル選択ボタンクリック時
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
    path = SelectFile();

    if(path != string.Empty)
    {
        textBox1.Text = path;
    }
}

/// <summary>
/// ファイル選択
/// </summary>
/// <returns>string:選択されたファイルのフルパス キャンセル時はEmpty</returns>
private string SelectFile()
{
    string ret = string.Empty;
    
    //OpenFileDialog
    using(OpenFileDialog openFileDialog = new OpenFileDialog())
    {
        openFileDialog.Title = "ファイル選択ダイアログ";
        openFileDialog.Filter = "テキストファイル(*.txt)|*.txt|すべてのファイル(*.*)|*.*";
        openFileDialog.InitialDirectory = @"c:\Study\";
    
        //ファイル選択ダイアログを開く
        if(openFileDialog.ShowDialog() == DialogResult.OK)
        {
            ret = openFileDialog.FileName;
        }
    }
    return ret;
}

button1をクリックするとbutton1_Click()メソッドが呼び出され、SelectFile()を呼び出します。
SelectFile()では、OpenFileDialogクラスのインスタンスを生成し、いくつかのプロパティ設定を経てShowDialog()を実行することでファイル選択ダイアログを呼び出しています。
ファイルを開く.png
ShowDialog()が閉じた際、返り値はDialogResult形式で返却されます。
返り値がDialogResult.OKだった場合、FileNameプロパティに選択されたファイルのフルパスが格納されているため、メソッド自体の返り値としてその情報を返却しています。
返却されたフルパス情報を、textBox1の表示プロパティであるtextBox.Textに代入し、表示に反映しています。
2023-03-07 (2).png

4.OpenFileDialogのプロパティ

今回使用しているプロパティの内容を記します。

Title
ファイル選択ダイアログ左上のタイトルに表示する文字列です。
Filter
拡張子によるフィルタを指定します。|で区切られた2つを1セットとして、[表示]|[フィルタ内容]と記述します。更にそのフィルタを複数設定する場合は、1セット毎に更に|を挟みます。ちょっと見づらい。
InitialDirectory
ダイアログを開いた時に最初に開かれているディレクトリをフルパスで指定します。記述がある場合、開くたびにこのディレクトリから選択を開始します。このプロパティを設定しない場合は、開き直すと以前開いていたディレクトリから開始するため、設定しないほうがいい場合もあります。

実際はこのフルパス情報からStreamReaderなどを用いてファイルを扱うことになります。
OpenFileDialogは、Formを使ったファイル操作の入り口の入り口と言ったところでしょうか。
実際のファイル操作はまたの機会に。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1