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));
}