ListView Drives : ListView « GUI Windows Forms « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » GUI Windows Forms » ListView 
23.29.3.ListView Drives
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

public sealed class Win32
{
  public const uint DRIVE_UNKNOWN     = 0;
  public const uint DRIVE_NO_ROOT_DIR = 1;
  public const uint DRIVE_REMOVABLE   = 2;
  public const uint DRIVE_FIXED       = 3;
  public const uint DRIVE_REMOTE      = 4;
  public const uint DRIVE_CDROM       = 5;
  public const uint DRIVE_RAMDISK     = 6;

  [DllImport("kernel32.dll")]
  public static extern uint GetDriveType(
    string lpRootPathName   // root directory
    );

  [DllImport("kernel32.dll")]
  private static extern bool GetVolumeInformation(
    string lpRootPathName,          // Root directory
    StringBuilder lpVolumeNameBuffer,    // Volume name buffer
    int nVolumeNameSize,          // Length of name buffer
    ref int lpVolumeSerialNumber,      // Volume serial number
    ref int lpMaximumComponentLength,    // Maximum file name length
    ref int lpFileSystemFlags,        // File system options
    StringBuilder lpFileSystemNameBuffer,  // File system name buffer
    int nFileSystemNameSize          // Length of file system name buffer
    );

  public static string GetVolumeName(string strRootPath)
  {
    StringBuilder sbVolumeName = new StringBuilder(256);
    StringBuilder sbFileSystemName = new StringBuilder(256);
    int nVolSerial = 0;
    int nMaxCompLength = 0;
    int nFSFlags = 0;
    bool bResult = GetVolumeInformation(strRootPath,sbVolumeName,256,
      ref nVolSerial, ref nMaxCompLength, ref nFSFlags, sbFileSystemName, 256);
    if (true == bResult)
    {
      return sbVolumeName.ToString();
    }
    else
    {
      return "";
    }
  }
}
  public class DrivesForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.ListView lvDrives;
    private System.Windows.Forms.MainMenu mnuMain;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.Windows.Forms.MenuItem mnuLargeIcons;
    private System.Windows.Forms.MenuItem mnuSmallIcons;
    private System.Windows.Forms.MenuItem mnuList;
    private System.Windows.Forms.MenuItem mnuDetails;

    public DrivesForm()
    {
      this.lvDrives = new System.Windows.Forms.ListView();
      this.mnuMain = new System.Windows.Forms.MainMenu();
      this.menuItem1 = new System.Windows.Forms.MenuItem();
      this.mnuLargeIcons = new System.Windows.Forms.MenuItem();
      this.mnuSmallIcons = new System.Windows.Forms.MenuItem();
      this.mnuList = new System.Windows.Forms.MenuItem();
      this.mnuDetails = new System.Windows.Forms.MenuItem();
      this.SuspendLayout();
      // 
      // lvDrives
      // 
      this.lvDrives.Dock = System.Windows.Forms.DockStyle.Fill;
      this.lvDrives.Name = "lvDrives";
      this.lvDrives.Size = new System.Drawing.Size(336277);
      this.lvDrives.TabIndex = 0;
      this.lvDrives.View = System.Windows.Forms.View.List;
      this.lvDrives.ItemActivate += new System.EventHandler(this.ItemActivated);
      this.lvDrives.SelectedIndexChanged += new System.EventHandler(this.OnSelItemChanged);
      // 
      // mnuMain
      // 
      this.mnuMain.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                          this.menuItem1});
      // 
      // menuItem1
      // 
      this.menuItem1.Index = 0;
      this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                            this.mnuLargeIcons,
                                            this.mnuSmallIcons,
                                            this.mnuList,
                                            this.mnuDetails});
      this.menuItem1.Text = "Style";
      // 
      // mnuLargeIcons
      // 
      this.mnuLargeIcons.Index = 0;
      this.mnuLargeIcons.Text = "Large Icons";
      this.mnuLargeIcons.Click += new System.EventHandler(this.OnMenuClick);
      // 
      // mnuSmallIcons
      // 
      this.mnuSmallIcons.Index = 1;
      this.mnuSmallIcons.Text = "Small Icons";
      this.mnuSmallIcons.Click += new System.EventHandler(this.OnMenuClick);
      // 
      // mnuList
      // 
      this.mnuList.Index = 2;
      this.mnuList.Text = "List";
      this.mnuList.Click += new System.EventHandler(this.OnMenuClick);
      // 
      // mnuDetails
      // 
      this.mnuDetails.Index = 3;
      this.mnuDetails.Text = "Details";
      this.mnuDetails.Click += new System.EventHandler(this.OnMenuClick);
      // 
      // DrivesForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(513);
      this.ClientSize = new System.Drawing.Size(336277);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.lvDrives});
      this.Menu = this.mnuMain;
      this.Name = "DrivesForm";
      this.Text = "Drives on computer";
      this.ResumeLayout(false);

      // Small and large image lists
      lvDrives.SmallImageList = new ImageList();
      Bitmap icoSmall = new Bitmap(GetType()"LvIcons.bmp");
      icoSmall.MakeTransparent(Color.FromArgb(0xff0x000xff));
      lvDrives.SmallImageList.Images.AddStrip(icoSmall);

      lvDrives.LargeImageList = new ImageList();
      Bitmap icoLarge = new Bitmap(GetType()"LvIconsLarge.bmp");
      icoLarge.MakeTransparent(Color.FromArgb(0xff0x000xff));
      Size sizeImages = new Size(32,32);
      lvDrives.LargeImageList.ImageSize = sizeImages;
      lvDrives.LargeImageList.Images.AddStrip(icoLarge);

      lvDrives.Columns.Add("Drive"100, HorizontalAlignment.Left);
      lvDrives.Columns.Add("Type"150, HorizontalAlignment.Left);

      ListDrives();
    }

    protected void ListDrives() 
    {
      string[] drives = Directory.GetLogicalDrives();
      string strDriveType = "";
      for (int i=0; i < drives.Length; i++)
      {
        string strDriveName = Win32.GetVolumeName(drives[i]);
        ListViewItem lvi = new ListViewItem();

        // Note: Network drives show up as local.
        switch(Win32.GetDriveType(drives[i])) 
        {
          case Win32.DRIVE_CDROM:
            strDriveType = "Compact Disc";
            lvi.ImageIndex = 1;
            break;
          case Win32.DRIVE_FIXED:
            strDriveType = "Local Disc";
            lvi.ImageIndex = 0;
            break;
          case Win32.DRIVE_REMOVABLE:
            strDriveType = "Floppy";
            lvi.ImageIndex = 2;
            break;
          default:
            goto case Win32.DRIVE_FIXED;
        }
        if (== strDriveName.LengthstrDriveName = strDriveType;
        lvi.Text = strDriveName + " (" + drives[i].Substring(02")";
        lvi.SubItems.Add(strDriveType);
        this.lvDrives.Items.Add(lvi);
      }
    }


    static void Main() 
    {
      Application.Run(new DrivesForm());
    }

    private void OnMenuClick(object sender, System.EventArgs e)
    {
      MenuItem mnu = (MenuItem)sender;
      switch(mnu.Text
      {
        case "Large Icons": lvDrives.View = View.LargeIcon; break;
        case "Small Icons": lvDrives.View = View.SmallIcon; break;
        case "List": lvDrives.View = View.List; break;
        default: lvDrives.View = View.Details; break;
      }
    }

    private void OnSelItemChanged(object sender, System.EventArgs e)
    {
      string strSelected = "";
      foreach (ListViewItem lvi in lvDrives.SelectedItems)
      {
        strSelected += " " + lvi.Text;
      }
      MessageBox.Show(strSelected);
    }

    private void ItemActivated(object sender, System.EventArgs e)
    {
      MessageBox.Show("Item activated");
    }
  }
23.29.ListView
23.29.1.ListView SorterListView Sorter
23.29.2.Fill data from Database to ListView
23.29.3.ListView Drives
23.29.4.ListView for File and Folder
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.