Introduction
In various cases, applications allow the user to open a single file, but also a particular folder. For instance, in an MP3 player the user can either add a single file to the play list or can choose an entire folder of MP3 files. This article describes how folders can be opened in C#.
Using the code
The example presented in this article does not contain much code. Therefore I have inserted everything in one class, as it is still easy to understand.
Required namespaces
Besides the namespaces which are used by default, it is necessary to use the IO namespace as well. Therefore the following line is added at the top of the sample file. This namespace is required to perform step 3.
using System.IO;
Step 1: Additional settings
Basically, there are two additional settings available to make the dialog more customized. First, the propertyShowNewFolderButton
determines whether the user can create a new folder or not.this.folderBrowserDialog.ShowNewFolderButton = false;
Second, the property RootFolder
defines the top level folder of the dialog, i.e. the folder which will be shown initially.this.folderBrowserDialog.RootFolder =
System.Environment.SpecialFolder.MyComputer;
Step 2: Show the dialog
In order to present the dialog on the screen, the
ShowDialog()
method is used. This method returns an enumeration that is necessary to process the user input. If the user presses Open in the dialog, the return value isDialogResult.OK
as in the listing below.DialogResult result=this.folderBrowserDialog.ShowDialog();
if (result==DialogResult.OK)
{
// the code here will be executed if the user presses Open in
// the dialog.
}
Step 3: Get the folder content
After the user presses Open, the selected folder is stored as a string in the property
SelectedPath
. Now it might be useful to retrieve the content of the folder. In the following snippet, each file name will be added to a listbox. In order to make use of the GetFiles
method of the Directory
class, the IO namespace is needed, as I mentioned above.string foldername=this.folderBrowserDialog.SelectedPath;
foreach (string f in Directory.GetFiles(foldername))
this.listBox1.Items.Add(f);
Acknowledgements
First and foremost, I used MSDN to find information for writing this article. Besides that, another useful article can be found here.
Conclusion
The FolderBrowserDialog is quite useful if you want to open a particular folder. I used this, for example, to develop some smaller tools that I use for file management. It was a surprise for me how simple it is to use.
Comments
Post a Comment