カテゴリ: C# 更新日: 2026/05/21

C# GUIアプリでファイルダイアログを使う方法!WinFormsとWPFの基本操作を完全解説

C#のGUIアプリでファイルダイアログを使う方法
C#のGUIアプリでファイルダイアログを使う方法

先生と生徒の会話形式で理解しよう

生徒

「C#でGUIアプリを作っているのですが、ユーザーにファイルを選択してもらう仕組みはどうやって作るんですか?」

先生

「それはファイルダイアログという機能を使います。ウィンドウズで見慣れた、あのファイルを選ぶ画面ですよ。」

生徒

「ああ、あの画面ですか!でも、プログラムで書くと難しそうですね。」

先生

「大丈夫ですよ。基本的な流れを覚えれば、誰でも簡単に実装できます。一緒に見ていきましょう!」

1. ファイルダイアログとは何か?

1. ファイルダイアログとは何か?
1. ファイルダイアログとは何か?

ファイルダイアログとは、アプリケーションを使っている人が、パソコンの中にあるファイルを開いたり、保存場所を指定したりするために使う専用の小さなウィンドウのことです。例えば、メモ帳アプリで「ファイルを開く」ボタンを押したときに出てくる、ファイルを選択する画面がまさにそれです。

プログラミングにおいて、これをゼロから作るのはとても大変ですが、C#の機能を使えば、すでに用意されている部品を呼び出すだけで簡単に使うことができます。これを使えるようになると、あなたの作ったアプリが、グッと実用的で使いやすいものに変わります。初心者の方がまず覚えるべき、GUI開発の基本スキルといえるでしょう。

2. WinFormsでのファイルダイアログ利用手順

2. WinFormsでのファイルダイアログ利用手順
2. WinFormsでのファイルダイアログ利用手順

WinForms(ウィンフォームズ)は、画面の部品をドラッグアンドドロップで配置できる、初心者にも分かりやすいツールです。ここでファイルを開くための機能であるOpenFileDialogクラスを使います。クラスというのは、特定の機能が詰め込まれた箱のようなものだと考えてください。

まずは、ボタンを押したときにファイル選択画面が出るように設定します。以下のコードを見てください。


private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        string filePath = openFileDialog.FileName;
        MessageBox.Show(filePath + " が選択されました。");
    }
}

このコードでは、まず新しいダイアログの箱を作成しています。次にShowDialogという命令で画面を表示し、ユーザーが「開く」ボタンを押した(OKが返ってきた)場合だけ、そのファイルパスを取得してメッセージで表示するという仕組みです。filePathという変数は、パソコン内のどこにファイルがあるかという住所のようなものですね。

3. ファイルの絞り込み機能を使ってみよう

3. ファイルの絞り込み機能を使ってみよう
3. ファイルの絞り込み機能を使ってみよう

すべてのファイルを見せてしまうと、ユーザーが目的のファイルを探すのに困ってしまうことがあります。そこで、特定の種類のファイルだけを表示するように制限する「フィルタ」機能を使います。例えば、テキストファイルだけを選ばせたい場合に非常に便利です。

以下のコードで設定方法を確認しましょう。


OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "テキストファイル|*.txt|すべてのファイル|*.*";
openFileDialog.Title = "テキストファイルを選択してください";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    string selectedFile = openFileDialog.FileName;
}

ここで使ったFilterという項目に注目してください。ここで「名前|拡張子」という形式で指定することで、画面の下の方にあるメニューから表示するファイルを切り替えられるようになります。これにより、ユーザーの誤操作を防ぎ、アプリの使い勝手を向上させることができるのです。Titleを設定すると、ダイアログの上部に表示される説明文を変えることもできます。

4. WPFでファイルダイアログを使う方法

4. WPFでファイルダイアログを使う方法
4. WPFでファイルダイアログを使う方法

WPF(ダブリューピーエフ)は、より高度なデザインや複雑な画面を作るのに向いている技術です。基本的な概念はWinFormsと似ていますが、クラスの名前が少しだけ異なります。WPFではMicrosoft.Win32という場所にあるOpenFileDialogを使います。

WPFにおける実装例はこちらです。


using Microsoft.Win32;

private void Button_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    if (openFileDialog.ShowDialog() == true)
    {
        string filename = openFileDialog.FileName;
    }
}

WinFormsとの大きな違いは、ShowDialogの結果が真偽値(trueかfalseか)で返ってくる点です。trueであればファイルが選ばれたと判断します。WPFは少し記述の仕方が違いますが、やっていることは同じです。この仕組みを理解していれば、どちらの開発環境でもスムーズに操作できるようになるはずです。

5. 保存用ダイアログであるSaveFileDialogについて

5. 保存用ダイアログであるSaveFileDialogについて
5. 保存用ダイアログであるSaveFileDialogについて

ファイルを開くための機能があれば、次は保存するための機能も必要になります。そのために用意されているのがSaveFileDialogです。名前の通り、ファイルの保存先や名前を指定するための画面を出すことができます。使い方はOpenFileDialogとほとんど同じなので、すぐに慣れることができます。

保存先を決めるコードの例を以下に記述します。


SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "テキストファイル|*.txt";
if (saveFileDialog.ShowDialog() == true)
{
    string savePath = saveFileDialog.FileName;
    System.IO.File.WriteAllText(savePath, "これは保存するテストデータです。");
}

このコードでは、ユーザーが保存先を決めたあと、実際にその場所にテキストを書き込んでいます。WriteAllTextというのは、ファイルに文字を書き込むための命令です。これを使えば、ユーザーが指定した場所にデータを保存する、本格的なツールを作ることができるようになります。プログラムで何かを作るとき、データの読み込みと書き込みは最も重要な処理のひとつです。

6. ファイルダイアログ利用時の注意点

6. ファイルダイアログ利用時の注意点
6. ファイルダイアログ利用時の注意点

最後に、初心者の方が気を付けるべきポイントをいくつか紹介します。まず、ユーザーがキャンセルボタンを押したときのこともしっかりと考えておく必要があります。もしキャンセルが押されたのにプログラムが無理やり動こうとすると、予期せぬエラーが起きてしまう可能性があります。先ほどのコード例のように、しっかりと「OKが押された場合のみ処理する」というチェックを入れるのが鉄則です。

また、ファイルパスには日本語や記号が含まれることもあります。そのため、パスをそのまま扱うときには、あまり特殊な加工をせず、プログラム側で用意されている専用の仕組みを使うのが安全です。さらに、多くのファイルを選択させたい場合は、Multiselectという設定をtrueにすることで、複数のファイルを一度に選べるようにすることも可能です。まずは一つのファイルから始めて、慣れてきたら便利な設定を一つずつ追加していくと、無理なくレベルアップできます。

カテゴリの一覧へ
新着記事
New1
COBOL
COBOLのEVALUATE文の使い方を完全ガイド!初心者でもわかる多岐選択
New2
C#
C#の拡張メソッドとは?既存クラスに機能を追加する便利技
New3
C#
ASP.NET CoreとC#の例外処理ベストプラクティス!エラーハンドリングの基本と実装方法
New4
Azure
Azure WAFとは?SQLインジェクションやXSSからWebサイトを守る初心者ガイド
人気記事
No.1
Java&Spring記事人気No1
C#
C#のstaticクラスとstaticメソッドの基本と使い方をやさしく解説!
No.2
Java&Spring記事人気No2
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.3
Java&Spring記事人気No3
C#
C# WinForms入門!初心者でも簡単にWindowsアプリを作る方法
No.4
Java&Spring記事人気No4
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.5
Java&Spring記事人気No5
COBOL
COBOLのファイルステータス(FILE STATUS)の使い方を完全ガイド!初心者でもわかるエラー処理の基本
No.6
Java&Spring記事人気No6
C#
C#のイベント処理を完全攻略!WinFormsとWPFの基本を解説
No.7
Java&Spring記事人気No7
C#
C#のbool型を完全解説!初心者でもわかるtrueとfalseの基本と使い方
No.8
Java&Spring記事人気No8
C#
C#でファイルパス操作の便利なテクニック!Pathクラスの使い方をわかりやすく解説