Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Folder Browser based on ListView

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; public class Form1 : Form {       private System.Windows.Forms.ListView browserListView;       private System.Windows.Forms.Label currentLabel;       private System.Windows.Forms.Label displayLabel;       private System.Windows.Forms.ImageList fileFolder;              string currentDirectory = Directory.GetCurrentDirectory();   public Form1() {         InitializeComponent();         Image folderImage = Image.FromFile("winter.jpg" );         Image fileImage = Image.FromFile("winter.jpg" );         fileFolder.Images.Add( folderImage );         fileFolder.Images.Add( fileImage );         LoadFilesInDirectory( currentDirectory );         displayLabel.Text = currentDirectory;   }     private void browserListView_Click( object sender, EventArgs e )     {       if ( browserListView.SelectedItems.Count != 0 )       {          if ( browserListView.Items[0].Selected )          {             DirectoryInfo directoryObject = new DirectoryInfo( currentDirectory );             if ( directoryObject.Parent != null )                LoadFilesInDirectory( directoryObject.Parent.FullName );          }else {             string chosen = browserListView.SelectedItems[ 0 ].Text;             if ( Directory.Exists( currentDirectory + @"\" + chosen ) )             {                if ( currentDirectory == @"C:\" )                   LoadFilesInDirectory( currentDirectory + chosen );                else                   LoadFilesInDirectory(currentDirectory + @"\" + chosen );             }          }          displayLabel.Text = currentDirectory;       }     }     public void LoadFilesInDirectory( string currentDirectoryValue )    {       try       {          browserListView.Items.Clear();          browserListView.Items.Add( "Go Up One Level" );          currentDirectory = currentDirectoryValue;          DirectoryInfo newCurrentDirectory = new DirectoryInfo( currentDirectory );          DirectoryInfo[] directoryArray = newCurrentDirectory.GetDirectories();          FileInfo[] fileArray = newCurrentDirectory.GetFiles();          foreach ( DirectoryInfo dir in directoryArray )          {             ListViewItem newDirectoryItem = browserListView.Items.Add( dir.Name );             newDirectoryItem.ImageIndex = 0;          }          foreach ( FileInfo file in fileArray )          {             ListViewItem newFileItem = browserListView.Items.Add( file.Name );             newFileItem.ImageIndex = 1;          }       } catch ( UnauthorizedAccessException ) {          Console.WriteLine( "Unauthorized Access Exception");       }    }       private void InitializeComponent()       {          this.browserListView = new System.Windows.Forms.ListView();          this.fileFolder = new System.Windows.Forms.ImageList(new System.ComponentModel.Container());          this.currentLabel = new System.Windows.Forms.Label();          this.displayLabel = new System.Windows.Forms.Label();          this.SuspendLayout();          //           // browserListView          //           this.browserListView.Location = new System.Drawing.Point(12, 60);          this.browserListView.Name = "browserListView";          this.browserListView.Size = new System.Drawing.Size(456, 197);          this.browserListView.SmallImageList = this.fileFolder;          this.browserListView.TabIndex = 0;          this.browserListView.View = System.Windows.Forms.View.List;          this.browserListView.Click += new System.EventHandler(this.browserListView_Click);          //           // fileFolder          //           this.fileFolder.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;          this.fileFolder.ImageSize = new System.Drawing.Size(16, 16);          this.fileFolder.TransparentColor = System.Drawing.Color.Transparent;          //           // currentLabel          //           this.currentLabel.AutoSize = true;          this.currentLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));          this.currentLabel.Location = new System.Drawing.Point(10, 19);          this.currentLabel.Name = "currentLabel";          this.currentLabel.Size = new System.Drawing.Size(122, 20);          this.currentLabel.TabIndex = 1;          this.currentLabel.Text = "Now in Directory:";          //           // displayLabel          //           this.displayLabel.AutoSize = true;          this.displayLabel.Location = new System.Drawing.Point(138, 19);          this.displayLabel.Name = "displayLabel";          this.displayLabel.Size = new System.Drawing.Size(0, 0);          this.displayLabel.TabIndex = 2;          //           // ListViewTestForm          //           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);          this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;          this.ClientSize = new System.Drawing.Size(480, 270);          this.Controls.Add(this.displayLabel);          this.Controls.Add(this.currentLabel);          this.Controls.Add(this.browserListView);          this.Name = "ListViewTestForm";          this.Text = "ListViewTest";          this.ResumeLayout(false);          this.PerformLayout();       }   [STAThread]   static void Main()   {     Application.EnableVisualStyles();     Application.Run(new Form1());   } }