如何解决There is no disk in the drive的错误?
我用Delphi编写了一个读取USB里数据的软件。
程序自动扫描计算机所有USB设备,很简单,代码如下:
- Delphi(Pascal) code
procedure GetUsbDrives(List: TStringList);var DriveBits: set of 0..25; I: Integer; Drive: AnsiChar;begin List.BeginUpdate; try Cardinal(DriveBits) := GetLogicalDrives; for I := 0 to 25 do if I in DriveBits then begin Drive := Chr(Ord('a') + I); if GetBusType(Drive) = BusTypeUsb then begin List.Add(Drive); end; end; finally List.EndUpdate; end;end;客户使用Win7, 使用时弹出错误 :
这个错误不是我在代码中定义的,是windows产生的。Google了一下,
发现回答感觉都牛头不对马嘴。
大家有人碰到这问题吗?如何解决?谢谢
[解决办法]
Drive := Chr(Ord('a') + I);
改为
Drive := Chr(Ord('A') + I);
大小写数值不一样的
[解决办法]
try..except
[解决办法]
USB读卡器插入电脑,盘符就会出来,不管你是否在读卡器中插入了SD卡(等),而当你访问这个盘符的时候,就会出错,当卡插入读卡器中时,就没问题,
http://www.61ic.com/vip/tx/USB/200705/7249.html
研究一下这个里面的API,由于没需求又不会C,所以剩下的工作你自己搞定了.
[解决办法]
研究一下这个里面的API