C# - 如何自定义OpenFileDialog以选择多个文件夹和文件?

时间:2012-07-24 09:33:45

标签: c# openfiledialog

我已发布 - How to use OpenFileDialog to select a folder?,我找不到正确答案。 所以,我改变了我的问题。

我想自定义OpenFileDialog以选择多个文件夹和文件。我试图找到一个解决方案,可以看到一些关于它的帖子。

在互联网上,我找到了以下项目 - https://github.com/scottwis/OpenFileOrFolderDialog

然而,在使用它时,我遇到了一个问题。它使用MFC中的 GetOpenFileName 函数和 OPENFILENAME 结构。 OPENFILENAME 的成员名为“ templateID ”。 它是对话框模板的标识符。示例项目具有“ res1.rc ”文件,并且还包含模板化对话框。

但我不知道如何将此文件附加到我的C#项目?

还是有其他完美的解决方案 - “如何自定义OpenFileDialog来选择多个文件夹和文件?”?

3 个答案:

答案 0 :(得分:11)

如果使用FileNames属性而不是FileName属性,则会获得每个文件的字符串数组,您可以使用shift键选择多个文件。像这样:

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog x = new OpenFileDialog();
    x.Multiselect = true;
    x.ShowDialog();
    string[] result = x.FileNames;

    foreach (string y in result)
       MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

对于文件和文件夹,您需要使用WinAPI中包含的CommonOpenFileDialog,特定类为here

答案 1 :(得分:1)

试试这个:

openFileDialog.Multiselect = true;

答案 2 :(得分:1)

你可能没有这样的内置.Net控件。当然,OpenFileDialog不能同时作为文件和文件夹浏览器。你有两个选择去第三方工具,比如你发现的第二方工具可以自己控制。令人惊讶的是,您可能不会发现创建一个非常简单的自己控件版本非常困难。