FolderBrowserDialog
类 fromSystem.Windows.Forms
是显示允许用户选择文件夹的对话框的推荐方式。
直到最近,此对话框的外观和行为与其他文件系统对话框不一致,这也是人们不愿使用它的原因之一。
好消息是,它FolderBrowserDialog
在 NET Core 3.0 中已“现代化”,因此对于那些编写针对该版本或更高版本的 Windows 窗体或 WPF 应用程序的人来说,现在是一个可行的选择。
在 .NET Core 3.0 中,Windows 窗体用户[原文如此] Windows Vista 中引入的基于 COM 的较新控件:

要在 NET Core WPF 应用程序中引用System.Windows.Forms
,需要编辑项目文件并添加以下行:
<UseWindowsForms>true</UseWindowsForms>
这可以直接放在现有<UseWPF>
元素之后。
那么这只是使用对话框的一个例子:
using System;
using System.Windows.Forms;
...
using var dialog = new FolderBrowserDialog
{
Description = "Time to select a folder",
UseDescriptionForTitle = true,
SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
+ Path.DirectorySeparatorChar,
ShowNewFolderButton = true
};
if (dialog.ShowDialog() == DialogResult.OK)
{
...
}
FolderBrowserDialog
有一个RootFolder
属性,据说是“设置浏览开始的根文件夹”,但无论我设置什么都没有任何区别;SelectedPath
似乎是用于此目的的更好属性,但是尾随反斜杠是必需的。
此外,该ShowNewFolderButton
属性似乎也被忽略了,无论如何总是显示按钮。