2012年7月7日土曜日

C# ファイルダイアログでファイルを選択する

ファイルダイアログを表示してファイルを選択する方法。


[コード]
using System;
using System.Drawing;
using System.Windows.Forms;

class Sample
{
    [STAThread]
    public static void Main()
    {
        Application.Run(new MainForm());
    }
}

class MainForm : Form
{
    private Label lb = new Label();     //ラベル
    private Button bt = new Button();   //ボタン

    public MainForm()
    {
        lb.Text = "";
        lb.AutoSize = true;
        lb.Location = new Point(10, 10);

        bt.Text = "ファイル選択";
        bt.AutoSize = true;
        bt.Location = new Point(lb.Left, lb.Bottom + 10);

        this.Controls.Add(lb);
        this.Controls.Add(bt);

        bt.Click += new EventHandler(bt_Click);
    }
    public void bt_Click(Object sender, EventArgs e)
    {
        DialogResult dRet;

        OpenFileDialog ofd = new OpenFileDialog();
        if ( (dRet = ofd.ShowDialog()) == DialogResult.OK )
        {
            lb.Text = ofd.SafeFileName;
        }
        else
        {
            lb.Text = "";
        }
    }
}


[説明]
ファイルダイアログを表示するには、OpenFileDialogクラスの「ShowDialogメソッド」を利用する。

ファイルダイアログでファイルが選択されたかどうかは、メソッドの戻り値で確認する。
ファイルが選択されると、「DialogResult.OK」が返される。

ちなみに選択されたファイル名は、「FileNameプロパティ」SafeFileNameプロパティ」などで取得する。


FileNameは、パスと拡張子を含む。
SafeFileNameは、ファイル名と拡張子のみでパスは含まない。