VolumeDeviceClass.cs
上传用户:lyzyl198
上传日期:2008-05-19
资源大小:174k
文件大小:1k
源码类别:

C#编程

开发平台:

C#

  1. // UsbEject version 1.0 March 2006
  2. // written by Simon Mourier <email: simon [underscore] mourier [at] hotmail [dot] com>
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace UsbEject.Library
  7. {
  8.     /// <summary>
  9.     /// The device class for volume devices.
  10.     /// </summary>
  11.     public class VolumeDeviceClass : DeviceClass
  12.     {
  13.         internal SortedDictionary<string, string> _logicalDrives = new SortedDictionary<string, string>();
  14.         /// <summary>
  15.         /// Initializes a new instance of the VolumeDeviceClass class.
  16.         /// </summary>
  17.         public VolumeDeviceClass()
  18.             : base(new Guid(Native.GUID_DEVINTERFACE_VOLUME))
  19.         {
  20.             foreach(string drive in Environment.GetLogicalDrives())
  21.             {
  22.                 StringBuilder sb = new StringBuilder(1024);
  23.                 if (Native.GetVolumeNameForVolumeMountPoint(drive, sb, sb.Capacity))
  24.                 {
  25.                     _logicalDrives[sb.ToString()] = drive.Replace("\", "");
  26.                 }
  27.             }
  28.         }
  29.         internal override Device CreateDevice(DeviceClass deviceClass, Native.SP_DEVINFO_DATA deviceInfoData, string path, int index)
  30.         {
  31.             return new Volume(deviceClass, deviceInfoData, path, index);
  32.         }
  33.     }
  34. }