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());
}
}
Related examples in the same category