С# - Как настроить OpenFileDialog для выбора нескольких папок и файлов?

Я опубликовал - Как использовать OpenFileDialog для выбора папки?, я не смог найти правильный ответ. Итак, я изменил свой вопрос.

Я хочу настроить OpenFileDialog для выбора нескольких папок и файлов. Я попытался найти решение и мог видеть некоторые сообщения об этом.

Из Интернета я нашел следующий проект - https://github.com/scottwis/OpenFileOrFolderDialog.

Однако, используя это, я столкнулся с одной проблемой. Он использует функцию GetOpenFileName и структуру OPENFILENAME из MFC. И OPENFILENAME имеет член с именем templateID ". Это идентификатор шаблона диалога. И образец проекта имеет файл res1.rc, а также имеет в нем шаблонное диалоговое окно.

Но я не знаю Как подключить этот файл к моему проекту С#?

Или существует ли какое-либо другое идеальное решение - " Как настроить OpenFileDialog для выбора нескольких папок и файлов?"

Ответ 1

Если вы используете свойство 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);
}

Для файлов и папок вам необходимо использовать CommonOpenFileDialog, включенный в WinAPI, конкретный класс здесь.

Ответ 2

Попробуйте следующее:

openFileDialog.Multiselect = true;

Ответ 3

Возможно, вы не получили встроенный элемент управления .Net. Определенно OpenFileDialog не может работать как с файлом, так и с браузером папок. У вас есть два варианта для стороннего инструмента, такого как тот, который вы нашли во втором, - сделайте свой собственный контроль. Удивительно, но вы не можете найти очень простую версию своего собственного контроля очень сложно.