{
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            foreach (DriveInfo d in allDrives)
            {
                Console.WriteLine("Drive {0}", d.Name);
                Console.WriteLine("  File type: {0}", d.DriveType);
                if (d.IsReady == true)
                {
                    Console.WriteLine("  Volume label: {0}", d.VolumeLabel);
                    Console.WriteLine("  File system: {0}", d.DriveFormat);
                    Console.WriteLine(
                        "  Available space to current user:{0, 15} bytes",
                        d.AvailableFreeSpace);
                    Console.WriteLine(
                        "  Total available space:          {0, 15} bytes",
                        d.TotalFreeSpace);
                    Console.WriteLine(
                        "  Total size of drive:            {0, 15} bytes ",
                        d.TotalSize);
                }
            }
            
        }
    }
驱动器类型枚举
Unknown 驱动器类型未知。 
 NoRootDirectory 此驱动器没有根目录。 
 Removable 此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。 
 Fixed 此驱动器是一个固定磁盘。 
 Network 此驱动器是一个网络驱动器。 
 CDRom 此驱动器是一个光盘设备,如 CD 或 DVD-ROM。 
 Ram 此驱动器是一个 RAM 磁盘。 
我们现在需要的就是Removable了。

如果要监听U盘插入和拔出的信息那么需要用窗口的方式来做,为什么啦?因为当U盘插入的时候会有一个消息,而这个消息也只有窗体的程序才能收到,没有窗口或者隐藏了,是收不到这个消息的自然也就不能监听U盘插入信息了。