说形象点就是:
比如有硬盘 C、D、E 三个盘符,光驱 F 盘,如果我有一个 U 盘插入是 H,再插入一个 U 盘是 G(在 H 盘前面),怎样获得最后插入的盘符是 G?

解决方案 »

  1.   

    估计要用API了!
    而且USB1.1的和2.0的还不同,有时候1.1你插同一个USB口显示的盘符可能会变化的!
      

  2.   

    根据读取现有硬盘的消息(包括U盘),把读取的信息放在链表中
    在链表中进行分类处理,如:盘号(A,B,C,D等),根据当前的盘数据和盘号进行排序
    然后新插入的按照英文字母的排序产生即可(类似在链表的尾处插入新数据)
      

  3.   

    WM_DEVICECHANGE
    处理这个消息就行了.
      

  4.   

    遍历所有盘符,如果改盘的类型是Removable则说明是U盘,用Dri.Name返回该盘的盘符
    代码如下        private string UpanName()
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();
                foreach (DriveInfo Dri in allDrives)
                {
                    if (Dri.DriveType.ToString() == "Removable")
                    {
                        return Dri.Name;
                    }
                }
                return string.Empty;
            }