【C#】FolderBrowserDialogが使いにくいので、OpenFileDialog でフォルダを指定する
こちらの記事を参考にしています。 qiita.com
実現できるメソッド
void BrowseFolder() { using (var ofd = new OpenFileDialog() { FileName = "SelectFolder", Filter = "Folder|.", CheckFileExists = false }) { if (ofd.ShowDialog() == DialogResult.OK) { Console.WriteLine(Path.GetDirectoryName(ofd.FileName)); } } }
(参考記事から引用)
FolderBrowserDialog
- 選択したフォルダのパスを取得
- パス直打ちが無い
- クイックアクセスが無い
- フォルダを開いたときのツリー構造が見づらい
というところがあります。また、ファイル選択をする場面が多いため、OpenFileDialogのほうがイメージされやすく、その使い勝手を要求されます。よって、OpenFileDialogでフォルダ選択できるのが便利だと思われます。上記のメソッドを使えば、OpenFileDialog でフォルダのパスを取得することができます。
なぜFolderBrowserDialogはOpenFileDialogに変更要求を受けるのか
これはよく使われているのがOpenFileDialogであり、こちらをよく見慣れて・使い慣れているからだと考えます。FolderBrowserDialogにも良いところはあるのに、メジャーになっている方を求められるということではないでしょうか。