How to: Choose Folders with the Windows Forms FolderBrowserDialog Component

Often, within Windows applications you create, you will have to prompt users to select a folder, most frequently to save a set of files. The Windows Forms FolderBrowserDialog component allows you to easily accomplish this task.

To choose folders with the FolderBrowserDialog component

  1. In a procedure, check the FolderBrowserDialog component's DialogResult property to see how the dialog box was closed and get the value of the FolderBrowserDialog component's SelectedPath property.

  2. If you need to set the top-most folder that will appear within the tree view of the dialog box, set the RootFolder property, which takes a member of the Environment.SpecialFolder enumeration.

  3. Additionally, you can set the Description property, which specifies the text string that appears at the top of the folder-browser tree view.

    In the example below, the FolderBrowserDialog component is used to select a folder, similar to when you create a project in Visual Studio and are prompted to select a folder to save it in. In this example, the folder name is then displayed in a TextBox control on the form. It is a good idea to place the location in an editable area, such as a TextBox control, so that users may edit their selection in case of error or other issues. This example assumes a form with a FolderBrowserDialog component and a TextBox control.

    Public Sub ChooseFolder()
        If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
            TextBox1.Text = FolderBrowserDialog1.SelectedPath
        End If
    End Sub
    
    public void ChooseFolder()
    {
        if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
        {
            textBox1.Text = folderBrowserDialog1.SelectedPath;
        }
    }
    
    public:
       void ChooseFolder()
       {
          if (folderBrowserDialog1->ShowDialog() == DialogResult::OK)
          {
             textBox1->Text = folderBrowserDialog1->SelectedPath;
          }
       }
    

    Important

    To use this class, your assembly requires a privilege level granted by the PathDiscovery property, which is part of the FileIOPermissionAccess enumeration. If you are running in a partial-trust context, the process might throw an exception because of insufficient privileges. For more information, see Code Access Security Basics.

For information on how to save files, see How to: Save Files Using the SaveFileDialog Component.

See also