フォルダ選択ダイアログを使う

WPFでは標準でフォルダ選択ダイアログを利用できないので、簡単な方法としてWindwos API Code Packeを利用した方法のメモです。環境はOSがWindows10、VisualStudio2017, .net Frameworkは4.5です。

NuGetパッケージで、Windows API Code Packeをインストールするので、パッケージマネージャのコンソールから下記のコマンドを実行します。

PM> Isntall-Package WIndowsAPICodePack-Core
PM> Install-Package WindowsAPICodePack-Shell

下記のようなコードで、フォルダ選択ダイアログを表示することが可能です。

using Microsoft.WindowsAPICodePack.Dialogs;

private void test() {
    string ret = "";
    var dlg = new CommonOpenFileDialog();

    //設定
    dlg.IsFolderPicker = true;  //フォルダ選択ダイアログの場合はtrue
    dlg.InitialDirectory = @"c:\";  //開いておくフォルダ
    dlg.DefaultDirectory = @"c:\temp";	//最近使用したフォルダが利用できない場合の代替えフォルダ

    dlg.Title = "これはタイトルです";

    //表示
    var Path = dlg.ShowDialog();
    if (Path == CommonFileDialogResult.Ok) {
        ret = dlg.FileName;
    }
    Console.WriteLine(ret);
}