C# 如何为多文件夹(或文件)选择器配置对话框?

C# 如何为多文件夹(或文件)选择器配置对话框?,c#,C#,我正在使用这个库进行对话演示 我正在使用这样的对话框拾取单个文件夹 private void Btn_path_to_save_processed_clip_folder_Click(object sender, RoutedEventArgs e) { var dialog = new Ookii.Dialogs.Wpf.VistaFolderBrowserDialog { Desc

我正在使用这个库进行对话演示

我正在使用这样的对话框拾取单个文件夹

        private void Btn_path_to_save_processed_clip_folder_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new Ookii.Dialogs.Wpf.VistaFolderBrowserDialog
            {
                Description = "Select where to save processed clip folder",
                SelectedPath = m_TbClipSaveDirectory,
                UseDescriptionForTitle = true
            };

            if (dialog.ShowDialog(Application.Current.MainWindow).GetValueOrDefault())
            {
                m_TbClipSaveDirectory = dialog.SelectedPath;
            }
        }
问题是-是否有一个选项可以同时选择几个文件夹


或者其他一些方法?

我认为默认情况下,任何选择器都不会提供多个文件夹。同一文件夹中可以有多个文件选项。为什么不在对话框中添加一个选项,如果他们说“是”,则显示“上载更多”。并从预定义文件夹列表中继续显示这些文件夹

var folderpath = new List<string>() { "c:", "d:" };
下次

m_TbClipSaveDirectory= folderpath [foldertoshow ];
    foldertoshow ++;
     SelectedPath = m_TbClipSaveDirectory,

最终我和努吉成功了

1) 右键单击project->Manage NuGet packages->在浏览选项卡fill
WindowsAPICodePack Shell
中,然后设置到所需的包中

2) 创建对话框

using var dialog = new CommonOpenFileDialog
{
    IsFolderPicker = true,
    Multiselect = true
};
在这里,您可以看到两个设置
IsFolderPicker
-用于只选择文件夹而不是文件,以及
Multiselect
-用于multiselection

最终结果

if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
    var folders = dialog.FileNames;
    MessageBox.Show(string.Join("\n", folders));
}
结果是:


使用CTRL键并选择所需的文件夹不起作用吗?我一直在玩Ookii对话框,找不到任何“开箱即用”的方法来完成您的任务。如果使用VistaOpenFileDialog类,则可以选择多个文件夹,但当单击“打开”按钮时,它会浏览到所选的第一个文件夹,而不是关闭对话框。也许可以创建您自己的继承VistaFileDialog的类,并将其设计为您想要的,但我不确定。如果您想选择多个文件夹,您可能需要寻找一个不同于Ookii的库。@TonyPulokas有什么建议,哪个库?@Aleksey Timoshchenko,对不起,我只有Ookii的经验。这个旧页面看起来很有希望(见第二幅图):
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
    var folders = dialog.FileNames;
    MessageBox.Show(string.Join("\n", folders));
}