Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - How to customize OpenFileDialog to select multiple folders and files?

I have posted - How to use OpenFileDialog to select a folder?, I couldn't find the correct answer. So, I have changed my question.

I want to customize OpenFileDialog to select multiple folders and files. I tried to find a solution and could see some posts about it.

From the internet, I found the following project - https://github.com/scottwis/OpenFileOrFolderDialog.

However, while using this, I faced one problem. It uses the GetOpenFileName function and OPENFILENAME structure from MFC. And OPENFILENAME has the member named "templateID". It's the identifier for dialog template. And the sample project has the "res1.rc" file and, also have the templated dialog in it.

But I don't know How can I attach this file to my C# project?

Or is there any other perfect solution about - "How to customize OpenFileDialog to select multiple folders and files?"?

like image 922
Yun Avatar asked Jul 24 '12 09:07

Yun


3 Answers

If you use the FileNames property instead of the FileName property, you get a string array of each file selected, you select multiple files using the shift key. Like so:

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);
}

For files and folders you need to use the CommonOpenFileDialog included with the WinAPI, the particular class is here.

like image 156
JMK Avatar answered Oct 22 '22 12:10

JMK


Try this:

openFileDialog.Multiselect = true;
like image 1
Embedd_0913 Avatar answered Oct 22 '22 12:10

Embedd_0913


You might not get a built in .Net control like that. Definitely the OpenFileDialog can not function as both File as well as Folder browser. You have two choices go for a third party tool like the one you found second make your own control. Surprisingly you might not find creating a very simple version of your own control very difficult.

like image 1
Arif Eqbal Avatar answered Oct 22 '22 12:10

Arif Eqbal