Use ListView to display file name and double click the name to execute that file
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView { public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() { // System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32); // this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream"))); this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16); // this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream"))); this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.FileInfo fi in files) { lvi = new ListViewItem(); lvi.Text = fi.Name; lvi.ImageIndex = 1; lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.Length.ToString(); lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); try { System.Diagnostics.Process.Start(filename); } catch { return; } } } }