Windows Forms: How to make a File Browser in C#

This tutorial will show you how to make a File Browser in C# using ListView control, then extract the icon associated with a file

As you know a ListView control is a window that displays a collection of items. ListView controls provide several ways to arrange and display items and are much more flexible than simple ListBox control. We will create a File Browser allows you to access files include icons in your hard disk.

To play the demo we will create the FileBrowser windows forms application project, then open your windows forms designer. Next, drag a ListView, TextBox, Label and Button control from your visual toolbox to the windows forms application, and layout your File Browser as shown below.

file browser in c#

After completing the file browser design, we will add code to handle your File Browser Application

You should create a list of data types as strings to contain the file name when you select the file from OpenFileDialog

List<string> listFiles = new List<string>();

then add a click event handler to the Open button

private void btnOpen_Click(object sender, EventArgs e)
    //Clear all items
    //Open folder browser dialog
    using (FolderBrowserDialog fbd = new FolderBrowserDialog() { Description = "Select your path." })
        if (fbd.ShowDialog() == DialogResult.OK)
            //Set path to textbox
            txtPath.Text = fbd.SelectedPath;
            foreach (string item in Directory.GetFiles(fbd.SelectedPath))
                //Add image to imagelist
                FileInfo fi = new FileInfo(item);
                listFiles.Add(fi.FullName);//Add file name to list
                //Add file name and image to listview
                listView.Items.Add(fi.Name, imageList.Images.Count - 1);

You can use the Icon.ExtractAssociatedIcon method to returns an icon representation of an image that is contained in the specified file. When ExtractAssociatedIcon is used with bitmaps, a thumbnail image may be returned instead of an icon if the system that is running the application has a registry setting that causes bitmap files to be shown as thumbnail images.

Click on the ListView control, then click on the SelectedIndexChanged event. Next, add your code as shown below to handle open files

private void listView_SelectedIndexChanged(object sender, EventArgs e)
    if (listView.FocusedItem != null)
        Process.Start(listFiles[listView.FocusedItem.Index]); //Open process

You should check FocusedItem of your listview before calling the Start method. If FocusedItem is NULL, your application will throw an error

The Process.Start method allows you to start a process resource and associates it with a process component.



Related Posts