多选文件夹和文件

时间:2010-11-30 16:35:47

标签: c# .net winforms

可以使用OpenFileDialog选择多个文件。 (将multiselect设置为true)

问题是如何同时选择多个文件和文件夹?

我知道什么是FolderBrowseDialog,我知道我应该按住ctrl或shift! :d

假设文件夹包含5个文件夹和2个文件,方案是选择1个文件和2个文件夹。

我不知道为什么人们会投票这个问题!!

-----------------编辑--------------------

假设一个OpenFileDialog,你可以在文件夹中选择任意数量的文件,好吗? 我想要这样的东西,但也有能力选择文件夹! 因此,OpenFileDialog返回FileNames数组中的选定文件名,该对话框返回类似于包含文件名和文件夹路径的SelectedPaths数组。

2 个答案:

答案 0 :(得分:1)

我在我构建的应用程序中完成了这个,最后我使用了TreeView控件,只是将硬盘映射到此控件 - 每个文件夹都有一个TreeNode,嵌套以匹配文件夹结构,然后是文件at最深层次。

虽然内存很大,但用户可以选择/取消选择单个文件,当有人检查父文件夹时,可以很容易地自动选择/取消选择所有子项。

答案 1 :(得分:1)

Common Item Dialog(取代“打开文件名通用”对话框)有几点自定义。我没有尝试,但通过挂钩IFileDialogEvents你应该能够根据需要改变行为。 (您可能需要添加一些技巧,可以在XP样式文件对话框中使用OFNHookProc)


尽管这意味着阅读了许多令人沮丧的Microsoft文档,但它比开发自定义对话框更受欢迎:

复制平台功能时,您必须复制所有功能。

这意味着,例如通过Ctrl + V,Shift + Ins或上下文菜单粘贴文件,如果我刚写的shell扩展不起作用,我很生气。