今天测试枚举USB mass storage 设备的时候惊奇发现一个bug。实在是觉得傻。
枚举设备的时候会得到PID,VID,然后得到Disks2....这些信息。在区分的时候如果能在这里进行那是最好不过的了。
在使用mass storage设备的时候呢,会按照volume 名称,然后就可以得到一个绝对的路径。就可以像操作本地硬盘一样操作里面的文件。这样做无疑是最好的了。
可是当出现2个以上,很有可能他们的volume都一样的。那该怎么办呢...
如果这些设备中有相同文件名的文件的时候。你去打开的时候会发生什么样的情况呢。这很显然。有可能打开的是第1个,或者第2个...。我测试了下打开的永远是第一个插入的设备里的文件。更改,删除也一样。
由于在操作的时候会通过这个volume得到这个文件的访问Number。枚举的时候是在第一个设备停住了。而不会判断其他的的设备。因为他已经不知道是在操作哪个设备。
如果他能在更底层操作的话,比如在你打开那个设备的时候,使用设备号+volume,或者一个唯一标识的标志那就可以了。
死苹果真郁闷呀...这么大的bug