Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Use ListViewItem to display file information

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.IO; class Form1 : Form {     private System.Collections.Specialized.StringCollection folderCol;     public Form1() {         InitializeComponent();         folderCol = new System.Collections.Specialized.StringCollection();         CreateHeadersAndFillListView();         PaintListView(@"C:\");         folderCol.Add(@"C:\");     }     private void CreateHeadersAndFillListView() {         ColumnHeader colHead;         colHead = new ColumnHeader();         colHead.Text = "Filename";         this.listViewFilesAndFolders.Columns.Add(colHead);          colHead = new ColumnHeader();         colHead.Text = "Size";         this.listViewFilesAndFolders.Columns.Add(colHead);          colHead = new ColumnHeader();         colHead.Text = "Last accessed";         this.listViewFilesAndFolders.Columns.Add(colHead);      }     private void PaintListView(string root) {         try {             ListViewItem lvi;             ListViewItem.ListViewSubItem lvsi;             if (root.CompareTo("") == 0)                 return;             DirectoryInfo dir = new DirectoryInfo(root);             DirectoryInfo[] dirs = dir.GetDirectories();              FileInfo[] files = dir.GetFiles();                        this.listViewFilesAndFolders.Items.Clear();             this.labelCurrentPath.Text = root;             this.listViewFilesAndFolders.BeginUpdate();             foreach (DirectoryInfo di in dirs) {                 lvi = new ListViewItem();                 lvi.Text = di.Name;                 lvi.ImageIndex = 0;                 lvi.Tag = di.FullName;                 lvsi = new ListViewItem.ListViewSubItem();                 lvsi.Text = "";                 lvi.SubItems.Add(lvsi);                 lvsi = new ListViewItem.ListViewSubItem();                 lvsi.Text = di.LastAccessTime.ToString();                 lvi.SubItems.Add(lvsi);                 this.listViewFilesAndFolders.Items.Add(lvi);             }             foreach (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.listViewFilesAndFolders.Items.Add(lvi);             }             this.listViewFilesAndFolders.EndUpdate();         } catch (System.Exception err) {             MessageBox.Show("Error: " + err.Message);         }     }     private void listViewFilesAndFoldes_ItemActivate(object sender, EventArgs e) {         System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;         string filename = lw.SelectedItems[0].Tag.ToString();         if (lw.SelectedItems[0].ImageIndex != 0) {             try {                 System.Diagnostics.Process.Start(filename);             } catch {                 return;             }         } else {             PaintListView(filename);             folderCol.Add(filename);         }     }     private void buttonBack_Click(object sender, EventArgs e) {         if (folderCol.Count > 1) {             PaintListView(folderCol[folderCol.Count - 2].ToString());             folderCol.RemoveAt(folderCol.Count - 1);         } else {             PaintListView(folderCol[0].ToString());         }     }     private void radioButtonLargeIcon_CheckedChanged(object sender, EventArgs e) {         RadioButton rdb = (RadioButton)sender;         if (rdb.Checked)             this.listViewFilesAndFolders.View = View.LargeIcon;     }     private void radioButtonList_CheckedChanged(object sender, EventArgs e) {         RadioButton rdb = (RadioButton)sender;         if (rdb.Checked)             this.listViewFilesAndFolders.View = View.List;     }     private void radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e) {         RadioButton rdb = (RadioButton)sender;         if (rdb.Checked)             this.listViewFilesAndFolders.View = View.SmallIcon;     }     private void radioButtonDetails_CheckedChanged(object sender, EventArgs e) {         RadioButton rdb = (RadioButton)sender;         if (rdb.Checked)             this.listViewFilesAndFolders.View = View.Details;     }     private void radioButtonTile_CheckedChanged(object sender, EventArgs e) {         RadioButton rdb = (RadioButton)sender;         if (rdb.Checked)             this.listViewFilesAndFolders.View = View.Tile;     }     private void InitializeComponent() {         System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("listViewFilesAndFoldes");         this.labelCurrentPath = new System.Windows.Forms.Label();         this.listViewFilesAndFolders = new System.Windows.Forms.ListView();         this.buttonBack = new System.Windows.Forms.Button();         this.groupBox1 = new System.Windows.Forms.GroupBox();         this.radioButtonSmallIcon = new System.Windows.Forms.RadioButton();         this.radioButtonList = new System.Windows.Forms.RadioButton();         this.radioButtonTile = new System.Windows.Forms.RadioButton();         this.radioButtonDetails = new System.Windows.Forms.RadioButton();         this.radioButtonLargeIcon = new System.Windows.Forms.RadioButton();         this.groupBox1.SuspendLayout();         this.SuspendLayout();         this.labelCurrentPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)                     | System.Windows.Forms.AnchorStyles.Right)));         this.labelCurrentPath.Location = new System.Drawing.Point(13, 13);         this.labelCurrentPath.Name = "labelCurrentPath";         this.labelCurrentPath.Size = new System.Drawing.Size(502, 15);         this.labelCurrentPath.TabIndex = 0;         this.listViewFilesAndFolders.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)                     | System.Windows.Forms.AnchorStyles.Left)                     | System.Windows.Forms.AnchorStyles.Right)));         this.listViewFilesAndFolders.Items.AddRange(new System.Windows.Forms.ListViewItem[] {         listViewItem2       });         this.listViewFilesAndFolders.Location = new System.Drawing.Point(13, 35);         this.listViewFilesAndFolders.Name = "listViewFilesAndFoldes";         this.listViewFilesAndFolders.Size = new System.Drawing.Size(423, 220);         this.listViewFilesAndFolders.TabIndex = 1;         this.listViewFilesAndFolders.View = System.Windows.Forms.View.Details;         this.listViewFilesAndFolders.ItemActivate += new System.EventHandler(this.listViewFilesAndFoldes_ItemActivate);         this.buttonBack.Anchor = System.Windows.Forms.AnchorStyles.Bottom;         this.buttonBack.Location = new System.Drawing.Point(222, 262);         this.buttonBack.Name = "buttonBack";         this.buttonBack.TabIndex = 2;         this.buttonBack.Text = "Back";         this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click);         this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));         this.groupBox1.Controls.Add(this.radioButtonSmallIcon);         this.groupBox1.Controls.Add(this.radioButtonList);         this.groupBox1.Controls.Add(this.radioButtonTile);         this.groupBox1.Controls.Add(this.radioButtonDetails);         this.groupBox1.Controls.Add(this.radioButtonLargeIcon);         this.groupBox1.Location = new System.Drawing.Point(443, 35);         this.groupBox1.Name = "groupBox1";         this.groupBox1.Size = new System.Drawing.Size(97, 220);         this.groupBox1.TabIndex = 3;         this.groupBox1.TabStop = false;         this.groupBox1.Text = "View Mode";         this.radioButtonSmallIcon.AutoSize = true;         this.radioButtonSmallIcon.Location = new System.Drawing.Point(7, 44);         this.radioButtonSmallIcon.Name = "radioButtonSmallIcon";         this.radioButtonSmallIcon.Size = new System.Drawing.Size(67, 17);         this.radioButtonSmallIcon.TabIndex = 4;         this.radioButtonSmallIcon.Text = "SmallIcon";         this.radioButtonSmallIcon.CheckedChanged += new System.EventHandler(this.radioButtonSmallIcon_CheckedChanged);         this.radioButtonList.AutoSize = true;         this.radioButtonList.Location = new System.Drawing.Point(7, 68);         this.radioButtonList.Name = "radioButtonList";         this.radioButtonList.Size = new System.Drawing.Size(37, 17);         this.radioButtonList.TabIndex = 3;         this.radioButtonList.Text = "List";         this.radioButtonList.CheckedChanged += new System.EventHandler(this.radioButtonList_CheckedChanged);         this.radioButtonTile.AutoSize = true;         this.radioButtonTile.Location = new System.Drawing.Point(7, 116);         this.radioButtonTile.Name = "radioButtonTile";         this.radioButtonTile.Size = new System.Drawing.Size(38, 17);         this.radioButtonTile.TabIndex = 2;         this.radioButtonTile.Text = "Tile";         this.radioButtonTile.CheckedChanged += new System.EventHandler(this.radioButtonTile_CheckedChanged);         this.radioButtonDetails.AutoSize = true;         this.radioButtonDetails.Checked = true;         this.radioButtonDetails.Location = new System.Drawing.Point(7, 92);         this.radioButtonDetails.Name = "radioButtonDetails";         this.radioButtonDetails.Size = new System.Drawing.Size(53, 17);         this.radioButtonDetails.TabIndex = 1;         this.radioButtonDetails.TabStop = true;         this.radioButtonDetails.Text = "Details";         this.radioButtonDetails.CheckedChanged += new System.EventHandler(this.radioButtonDetails_CheckedChanged);         this.radioButtonLargeIcon.AutoSize = true;         this.radioButtonLargeIcon.Location = new System.Drawing.Point(7, 20);         this.radioButtonLargeIcon.Name = "radioButtonLargeIcon";         this.radioButtonLargeIcon.Size = new System.Drawing.Size(69, 17);         this.radioButtonLargeIcon.TabIndex = 0;         this.radioButtonLargeIcon.Text = "LargeIcon";         this.radioButtonLargeIcon.CheckedChanged += new System.EventHandler(this.radioButtonLargeIcon_CheckedChanged);         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);         this.ClientSize = new System.Drawing.Size(550, 291);         this.Controls.Add(this.groupBox1);         this.Controls.Add(this.buttonBack);         this.Controls.Add(this.listViewFilesAndFolders);         this.Controls.Add(this.labelCurrentPath);         this.Name = "Form1";         this.Text = "ListView";         this.groupBox1.ResumeLayout(false);         this.groupBox1.PerformLayout();         this.ResumeLayout(false);         this.PerformLayout();     }     private System.Windows.Forms.Label labelCurrentPath;     private System.Windows.Forms.ListView listViewFilesAndFolders;     private System.Windows.Forms.Button buttonBack;     private System.Windows.Forms.GroupBox groupBox1;     private System.Windows.Forms.RadioButton radioButtonLargeIcon;     private System.Windows.Forms.RadioButton radioButtonDetails;     private System.Windows.Forms.RadioButton radioButtonTile;     private System.Windows.Forms.RadioButton radioButtonList;     private System.Windows.Forms.RadioButton radioButtonSmallIcon;     [STAThread]     static void Main() {         Application.EnableVisualStyles();         Application.Run(new Form1());     } }