C#: FolderBrowserDialog — окно выбора директории (папки)

В данной заметке я решил кратко, а главное наглядно продемонстрировать пример создания окна для выбора файла.

Сразу оговорюсь, что если Вас интересует окно для выбора файла, то Вам нужно смотреть данную заметку.
По сути окно для выбора директории — это обычая форма, которую Вы создаете в привычном конструкторе WinForm приложения в Visual Studio. Если у Вас есть время и желание, Вы можете без труда создать собственную форму, со своими украшениями и фишками. Однако на практике, обычно, программисты прибегают к помощи стандартного класса FolderBrowserDialog. Создадим пустое приложение WinForms, кликнем два раза по нашей форме и в созданном событии загрузки формы, пропишем следующий код:

private void Form1_Load(object sender, EventArgs e)
{
            FolderBrowserDialog FBD = new FolderBrowserDialog();
            if (FBD.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show(FBD.SelectedPath);
            }
}

Камнем преткновения здесь является условие. Как я уже говорил выше FolderBrowserDialog — это обычная форма, а значит метод ShowDialog будет возвращать перечисление DialogResult. В нашем случае если пользователь в окне выбора папки, нажмет кнопку «Отмена», то метод вернет DialogResult.Cancel, если же папку выберут и нажмут «ОК», то DialogResult.OK.
Таким образом наше условие, показывает нам выбранный путь только тогда, когда мы выбрали нужную директорию и нажали кнопку «ОК».
По умолчанию окно FolderBrowserDialog позволяет создать новую папку «налету». Для того чтобы убрать данную возможность, перед вызовом метода ShowDialog необходимо задать свойство ShowNewFolderButton = false.
В итоге должно получиться нечто подобное:

private void Form1_Load(object sender, EventArgs e)
{
            FolderBrowserDialog FBD = new FolderBrowserDialog();
            FBD.ShowNewFolderButton = false;
            if (FBD.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show(FBD.SelectedPath);
            }
}
Запись опубликована в рубрике C# с метками , , , , , , . Добавьте в закладки постоянную ссылку.