14

我已发布 -如何使用 OpenFileDialog 选择文件夹?,我找不到正确的答案。所以,我改变了我的问题。

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

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

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

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

或者关于“如何自定义OpenFileDialog以选择多个文件夹和文件? ”还有其他完美的解决方案吗?

4

3 回答 3

12

如果您使用 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);
}

对于您需要使用WinAPICommonOpenFileDialog附带的文件和文件夹,特定的类在这里

于 2012-07-24T09:37:56.377 回答
1

试试这个:

openFileDialog.Multiselect = true;
于 2012-07-24T09:38:21.543 回答
1

您可能无法获得这样的内置 .Net 控件。绝对 OpenFileDialog 不能同时用作文件浏览器和文件夹浏览器。对于第三方工具,您有两种选择,例如您找到的第二个让您自己控制的工具。令人惊讶的是,您可能不会发现创建自己的控件的非常简单的版本非常困难。

于 2012-07-24T09:57:09.863 回答