C#对话框:选择多个文件和文件夹

3

可能重复:
.NET中选择多个文件和文件夹所需的对话框

我正在寻找一个对话框,允许用户在一个对话框中选择多个文件和文件夹。我已经在互联网上搜过了,但没有找到可以解决这个问题的好东西,只有适用于C ++的东西。

如果已经有答案,请纠正我,因为我已经花了很多时间想找到解决方案。

我会感激你的帮助!


谢谢回复,但 OpenFileDialog 不允许选择文件夹。 - Infernus
第二个链接回答了你的问题;这个问题是一个完全重复的。 - Dan Puzey
很遗憾,它不能满足我的需求。这些对话框只能选择多个文件,而不能同时选择多个文件和多个文件夹。不过还是谢谢你的建议。 - Infernus
@Infernus,你有没有找到解决方案?我正在寻找类似的解决方案。 - Dan Cundy
2个回答

1

请查看OpenFileDialog::Multiselect属性,文档如下:

获取或设置一个值,该值指示对话框是否允许选择多个文件。

要获取所选文件的列表,应使用OpenFileDialog::FileNames属性。

添加样式OFN_ALLOWMULTISELECT,请参阅此文章Multiple File Selection Without Any Extra Code

CodeProject文章:SelectDialog - A Multiple File and Folder Select Dialog

已添加:请查看此处添加的C#多文件选择示例代码:

OpenFileDialog d = new OpenFileDialog();
d.Filter = "All files|*.*";
d.Multiselect = true;
if (d.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    foreach (string fileName in d.FileNames)
    {
       // ... do something ...
    }
}

关于多个文件夹的选择

您可以使用TreeView控件通过使用以下引用来填充目录结构:

用文件系统目录结构填充TreeView

其次,您可以使用TreeView控件的SelectedNodes进行多选操作,以选择多个文件夹。

C#中带有多选功能的TreeView

FolderBrowserDialog控件

希望这可以帮到您!


1
这只允许选择多个文件。我希望它能够允许选择多个文件和文件夹。 - Infernus
尝试根据您的需求使用不同的过滤器,顺便说一下,这段代码应该可以完美运行。替换此行 d.Filter =“所有文件|*.*”; 并通过按Ctrl键选择多个文件。 - Furqan Safdar
此解决方案主要适用于文件,而非文件夹。您仍然可以使用此代码选择多个文件吗? - Furqan Safdar
没有OpenFolderDialog控件,而是仅适用于文件的OpenFileDialog。如果您检查我的编辑答案,您可能会找到使用TreeView.SelectedNodes创建OpenFolderDialog以进行多个文件夹选择的方法。还需要什么?很抱歉,Microsoft没有为文件夹提供现成的控件。 - Furqan Safdar
我的回答没有对你有任何帮助吗? - Furqan Safdar
显示剩余6条评论

1

你好,感谢你的帮助。我现在正在尝试使用Ookii.Dialogs。它可以工作,但不是我想要的方式。我想能够选择多个文件和文件夹。不仅仅是文件,还有文件夹。问题是相同的,但唯一真正好的答案是使用“CommonOpenFileDialog”。我将不得不研究一下,找不到很多关于它的信息,甚至不知道如何创建一个或者它应该放在哪里。 - Infernus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接