Альтернативный метод, использующий 2 List<string>
объекты для хранения выбора текущих файлов и расширений файлов как Отдельные , Упорядоченные элементы.
Списки затем используются в качестве ListBox.DataSource .
A ListBox.Items
Сброс сбрасывается при изменении источника данных.
Когда выбран целевой путь, каждый элемент в списке расширений используется для создания каталога по выбранному пути.
Нет необходимости проверять, существует ли уже каталог: Directory.CreateDirectory() просто игнорирует это.
Возможно, вы захотите добавить процедуру проверки для пути, выбранного пользователем.Пользователь, возможно, выбрал странный пункт назначения.
List<string> fileNames = null;
List<string> fileExtensions = null;
private void btn_list_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
{
if (fbd.ShowDialog() == DialogResult.OK)
{
lbl_path.Text = fbd.SelectedPath;
fileNames = Directory.GetFiles(fbd.SelectedPath).ToList();
fileExtensions = fileNames.Select(item =>
Path.GetExtension(item).Replace(".", "")).Distinct().OrderBy(n => n).ToList();
listBox_name..DataSource = fileNames.Select(f => Path.GetFileName(f)).ToList();
listBox_ex.DataSource = fileExtensions;
}
}
}
private void btn_CreateFolder_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
{
if (fbd.ShowDialog() == DialogResult.OK)
{
lbl_pathCreated.Text = fbd.SelectedPath;
fileExtensions.ForEach(item =>
Directory.CreateDirectory(Path.Combine(fbd.SelectedPath, item)));
}
}
}