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

This post shows you how to make a File Browser using ListView control, then extract the icon associated with a file in c#. net windows forms application.

As you know, ListView control is a window that displays a collection of items. The ListView controls provide several ways to arrange and display items and are much more flexible than simple ListBox control.

Through this c# example, we will create the File Browser allows you to access files include icons in your hard disk, then display on the ListView control.

To play the demo we will create a new windows forms application project, then open your windows forms designer. Next, drag the ListView, TextBox, Label and Button controls from your visual toolbox to the windows forms application, then layout your File Browser form 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 the click event handler to the Open button as the following c# code.

private void btnOpen_Click(object sender, EventArgs e)
{
    //Clear all items
    listFiles.Clear();
    listView.Items.Clear();
    //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
                imageList.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(item));
                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.

VIDEO TUTORIAL

 

Related Posts