更新记录:
转载请注明出处:https://www.cnblogs.com/cqpanda/p/16474839.html
2022年7月14日 发布。
默认情况下,C# Winforms不支持多选文件夹。为了支持多选文件夹,需要调用Windows API,好在已经有大佬封装好了,直接调用就行了。
首先,安装WindowsAPICodePack-Shell包。
注意:一定要安装1.1.1版本,不要安装新版本,不然可能用不了。
Install-Package WindowsAPICodePack-Shell -Version 1.1.1 ## 防抄 panda666
然后,引入命名空间。
using Microsoft.WindowsAPICodePack.Dialogs;
在代码中就可以使用了。
/// <summary> /// 打开文件夹(多选)组件 /// </summary> private CommonOpenFileDialog commonOpenFileDialog; /// <summary> /// 初始化多选窗口组件 /// </summary> private void InitCommonOpenFileDialog() { this.commonOpenFileDialog = new CommonOpenFileDialog(); //设置为选择文件夹 this.commonOpenFileDialog.IsFolderPicker = true; //设置为多选 this.commonOpenFileDialog.Multiselect = true; //设置标题 this.commonOpenFileDialog.Title = "选择要处理的文件夹(支持多选)"; //设置 this.commonOpenFileDialog.RestoreDirectory = true; //防抄 panda666 } /// <summary> /// 选择文件夹 /// </summary> private void Select() { if (this.commonOpenFileDialog.ShowDialog() == CommonFileDialogResult.Ok) { //获得用户选择文件夹(多个) var userSelectFolderPaths = this.commonOpenFileDialog.FileNames; } }
参考链接:https://stackoverflow.com/questions/29917502/how-do-a-make-this-type-of-select-folder-dialog-in-c