public static string FolderBrowserDlg(string defaultPath = "")
            {
                OpenDlgDir dlg = new OpenDlgDir();

                dlg.pszDisplayName = defaultPath;
                dlg.ulFlags        = BIF_USENEWUI;
                //设置hwndOwner==0时,是非模态对话框,设置hwndOwner!=0时为模态对话框
                dlg.hwndOwner = DllOpenFileDialog.GetForegroundWindow();

                IntPtr pidlPtr = DllOpenFileDialog.SHBrowseForFolder(dlg);

                char[] charArray = new char[MAX_PATH_LENGTH];
                DllOpenFileDialog.SHGetPathFromIDList(pidlPtr, charArray);
                string foldPath = new String(charArray);

                foldPath = foldPath.Substring(0, foldPath.IndexOf('\0'));
                return(foldPath);
            }
 public static extern IntPtr SHBrowseForFolder([In, Out] OpenDlgDir odd);