С# - Как настроить 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 не может работать как с файлом, так и с браузером папок. У вас есть два варианта для стороннего инструмента, такого как тот, который вы нашли во втором, - сделайте свой собственный контроль. Удивительно, но вы не можете найти очень простую версию своего собственного контроля очень сложно.