c# FileDialog OpenFileDialog

【C#】ダイアログボックスでフォルダを選択する方法|選択できるのはファイルだけじゃない!フォルダも選択できるのだ

ダイアログボックスからフォルダを選択したい

こんな場面、あると思います。

 

通常は、ダイアログボックスで「ファイルを選択したい」、という事が大半ですが、時にはフォルダを選択したい!という事も。

そんな時の解決策を紹介します。


ダイアログボックスでフォルダを選択する方法

「OpenFileDialog」を使用した方法です。

1つのフォルダを選択し、選択したフォルダ名(フルパスなど)を取得できる方法です。

※フォルダの複数選択は、本記事の方法では無理です。

 

※OpenFileDialogを使う以外では、「FolderBrowseDialog」を使った方法があります。以下の記事で紹介していますので合わせてご覧ください(本記事最後にもリンク張っておきますので、最後まで読み終わってからこちらの記事もご覧ください)

【C#】ダイアログでフォルダを選択する方法|FolderBrowserDialogを使った方法を紹介

「ダイアログを表示してユーザーにフォルダーを選択させたい」 という場合の方法です。   今回は「FilderBrowseDialog」を使用した方法を紹介していきます。 ダイアログでフォルダ ...

続きを見る

OpenFileDialogでフォルダを選択する方法

コード例を公開

では解答コードから。

コードはこんな感じです。

テスト用の画面はこんな感じ

今回作成したサンプルは、こんな画面。

ダイアログボックスでフォルダを選択する方法

ボタンとテキストボックスを配置した、シンプルな形。

 

先ほどのコードは、このボタンをクリックしたときのイベント(処理)です。

ボタンをクリックすると、OpenFileDialogを生成しフォルダを選択できるようにしたもの。

【ポイント】ファイルダイアログでフォルダを選択する方法

ポイントは以下の2つ。

FileNameに適当な名前をいれる

こんな感じで、下の「ファイル名」の欄に、適当な名前を自動で入れてあげるようにします。

FileNameに適当な名前をいれる

※「File」は自分の好きな適当な文字列でOKです。

ここで「開く」を押すと、このダイアログボックは閉じます。

すると、以下のコードではこの「File」までのフルパスを取得することができます。

この例では、以下のフルパスが取得できます。

C:\My Music:\File

本来は、MyMusicフォルダの中には、指定した「File」フォルダは無いのですが、このFileのフルパスを取得できました。

※ちなみに、ソースコード上でデフォルト名を入れてあげる事は必須ではありません。ユーザーに適当な文字を入力してもらうでもOKです。でも実用上それは面倒なので、ソースコード上で適当な文字を初期値として設定するようにしています。

「CheckFileExists」を「false」に設定する

続いて2つ目の「CheckFileExists」を「false」に設定している点。

これはその名の通り、「ファイル(フォルダ)が存在するかのチェックをするorしない」を「しない」に設定している処理。

これを「しない:false」にしないと、フォルダを選択でるようになりません。

 

ためしに「true」にしてみると、こんなコーションメッセージが表示されます。

CheckFileExistsをtrueにした場合の挙動

ファイル名の欄に適当な名前を入れて「開く」を押したときの挙動です。

ファイル(フォルダ)が存在しないので、「ファイルが見つかりません」というコーションがでます。

※この例では「C:\My Music:\File」フォルダは存在しないよ!というコーション。

まとめ|OpenFileDialogでもフォルダを選択することは可能

ファイル選択ダイアログで一般的な「OpenFileDialog」でフォルダを選択する方法を紹介しました。

ポイントは以下。

ぜひ参考にしてみてください!

 

「FolderBrowseDialog」を使ったフォルダ選択方法について以下の記事で紹介しています。こちらも合わせてご覧ください。

※個人的には、本記事のOpenFIleDialogを使った方法が好きです。

【C#】ダイアログでフォルダを選択する方法|FolderBrowserDialogを使った方法を紹介

「ダイアログを表示してユーザーにフォルダーを選択させたい」 という場合の方法です。   今回は「FilderBrowseDialog」を使用した方法を紹介していきます。 ダイアログでフォルダ ...

続きを見る

\この記事はどうでしたか?/

-c#, FileDialog, OpenFileDialog

© 2021 ジョブログLiFE