using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
public 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.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.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 listViewFilesAndFolders_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 radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.SmallIcon;
}
private void radioButtonList_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.List;
}
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()
{
this.labelCurrentPath = new System.Windows.Forms.Label();
this.listViewFilesAndFolders = new System.Windows.Forms.ListView();
this.groupBoxViewMode = new System.Windows.Forms.GroupBox();
this.radioButtonTile = new System.Windows.Forms.RadioButton();
this.radioButtonDetails = new System.Windows.Forms.RadioButton();
this.radioButtonList = new System.Windows.Forms.RadioButton();
this.radioButtonSmallIcon = new System.Windows.Forms.RadioButton();
this.radioButtonLargeIcon = new System.Windows.Forms.RadioButton();
this.buttonBack = new System.Windows.Forms.Button();
this.groupBoxViewMode.SuspendLayout();
this.SuspendLayout();
//
this.labelCurrentPath.Location = new System.Drawing.Point(12, 9);
this.labelCurrentPath.Name = "labelCurrentPath";
this.labelCurrentPath.Size = new System.Drawing.Size(429, 13);
this.labelCurrentPath.TabIndex = 0;
//
this.listViewFilesAndFolders.LargeImageList = this.imageListLarge;
this.listViewFilesAndFolders.Location = new System.Drawing.Point(12, 25);
this.listViewFilesAndFolders.Size = new System.Drawing.Size(429, 208);
this.listViewFilesAndFolders.UseCompatibleStateImageBehavior = false;
this.listViewFilesAndFolders.View = System.Windows.Forms.View.Details;
this.listViewFilesAndFolders.ItemActivate += new System.EventHandler(this.listViewFilesAndFolders_ItemActivate);
//
this.groupBoxViewMode.Controls.Add(this.radioButtonTile);
this.groupBoxViewMode.Controls.Add(this.radioButtonDetails);
this.groupBoxViewMode.Controls.Add(this.radioButtonList);
this.groupBoxViewMode.Controls.Add(this.radioButtonSmallIcon);
this.groupBoxViewMode.Controls.Add(this.radioButtonLargeIcon);
this.groupBoxViewMode.Location = new System.Drawing.Point(447, 25);
this.groupBoxViewMode.Name = "groupBoxViewMode";
this.groupBoxViewMode.Size = new System.Drawing.Size(105, 208);
this.groupBoxViewMode.TabIndex = 2;
this.groupBoxViewMode.TabStop = false;
this.groupBoxViewMode.Text = "View Mode";
//
// radioButtonTile
//
this.radioButtonTile.AutoSize = true;
this.radioButtonTile.Location = new System.Drawing.Point(6, 111);
this.radioButtonTile.Name = "radioButtonTile";
this.radioButtonTile.Size = new System.Drawing.Size(42, 17);
this.radioButtonTile.TabIndex = 4;
this.radioButtonTile.Text = "Tile";
this.radioButtonTile.UseVisualStyleBackColor = true;
this.radioButtonTile.CheckedChanged += new System.EventHandler(this.radioButtonTile_CheckedChanged);
//
// radioButtonDetails
//
this.radioButtonDetails.AutoSize = true;
this.radioButtonDetails.Checked = true;
this.radioButtonDetails.Location = new System.Drawing.Point(6, 88);
this.radioButtonDetails.Name = "radioButtonDetails";
this.radioButtonDetails.Size = new System.Drawing.Size(57, 17);
this.radioButtonDetails.TabIndex = 3;
this.radioButtonDetails.TabStop = true;
this.radioButtonDetails.Text = "Details";
this.radioButtonDetails.UseVisualStyleBackColor = true;
this.radioButtonDetails.CheckedChanged += new System.EventHandler(this.radioButtonDetails_CheckedChanged);
//
// radioButtonList
//
this.radioButtonList.AutoSize = true;
this.radioButtonList.Location = new System.Drawing.Point(6, 65);
this.radioButtonList.Name = "radioButtonList";
this.radioButtonList.Size = new System.Drawing.Size(41, 17);
this.radioButtonList.TabIndex = 2;
this.radioButtonList.Text = "List";
this.radioButtonList.UseVisualStyleBackColor = true;
this.radioButtonList.CheckedChanged += new System.EventHandler(this.radioButtonList_CheckedChanged);
//
// radioButtonSmallIcon
//
this.radioButtonSmallIcon.AutoSize = true;
this.radioButtonSmallIcon.Location = new System.Drawing.Point(6, 42);
this.radioButtonSmallIcon.Name = "radioButtonSmallIcon";
this.radioButtonSmallIcon.Size = new System.Drawing.Size(74, 17);
this.radioButtonSmallIcon.TabIndex = 1;
this.radioButtonSmallIcon.Text = "Small Icon";
this.radioButtonSmallIcon.UseVisualStyleBackColor = true;
this.radioButtonSmallIcon.CheckedChanged += new System.EventHandler(this.radioButtonSmallIcon_CheckedChanged);
//
// radioButtonLargeIcon
//
this.radioButtonLargeIcon.AutoSize = true;
this.radioButtonLargeIcon.Location = new System.Drawing.Point(6, 19);
this.radioButtonLargeIcon.Name = "radioButtonLargeIcon";
this.radioButtonLargeIcon.Size = new System.Drawing.Size(76, 17);
this.radioButtonLargeIcon.TabIndex = 0;
this.radioButtonLargeIcon.Text = "Large Icon";
this.radioButtonLargeIcon.UseVisualStyleBackColor = true;
this.radioButtonLargeIcon.CheckedChanged += new System.EventHandler(this.radioButtonLargeIcon_CheckedChanged);
//
// buttonBack
//
this.buttonBack.Location = new System.Drawing.Point(275, 240);
this.buttonBack.Name = "buttonBack";
this.buttonBack.Size = new System.Drawing.Size(75, 23);
this.buttonBack.TabIndex = 3;
this.buttonBack.Text = "Back";
this.buttonBack.UseVisualStyleBackColor = true;
this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click);
//
// imageListSmall
//
this.imageListSmall.TransparentColor = System.Drawing.Color.Transparent;
this.imageListSmall.Images.SetKeyName(0, "Folder 16x16.ICO");
this.imageListSmall.Images.SetKeyName(1, "Text 16x16.ICO");
//
// imageListLarge
//
this.imageListLarge.TransparentColor = System.Drawing.Color.Transparent;
this.imageListLarge.Images.SetKeyName(0, "Folder32x32.ICO");
this.imageListLarge.Images.SetKeyName(1, "Text 32x32.ICO");
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(564, 273);
this.Controls.Add(this.buttonBack);
this.Controls.Add(this.groupBoxViewMode);
this.Controls.Add(this.listViewFilesAndFolders);
this.Controls.Add(this.labelCurrentPath);
this.Name = "Form1";
this.Text = "ListView";
this.groupBoxViewMode.ResumeLayout(false);
this.groupBoxViewMode.PerformLayout();
this.ResumeLayout(false);
}
private System.Windows.Forms.Label labelCurrentPath;
private System.Windows.Forms.ListView listViewFilesAndFolders;
private System.Windows.Forms.GroupBox groupBoxViewMode;
private System.Windows.Forms.RadioButton radioButtonTile;
private System.Windows.Forms.RadioButton radioButtonDetails;
private System.Windows.Forms.RadioButton radioButtonList;
private System.Windows.Forms.RadioButton radioButtonSmallIcon;
private System.Windows.Forms.RadioButton radioButtonLargeIcon;
private System.Windows.Forms.Button buttonBack;
private System.Windows.Forms.ImageList imageListSmall;
private System.Windows.Forms.ImageList imageListLarge;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}