for i:=65 to 90 do
begin
Letter:=Chr(i);
sDrive:=Letter+':\';
DriveType:=GetDriveType(PChar(sDrive)); if DriveType=DRIVE_REMOVABLE then
begin //assignfile(f,letter+':\firmware.bin');
if FileExists(letter+':\firmware.bin') then //debug排错好象是在这里出错的,也可能是 begin
assignfile(f,letter+':\firmware.bin');
reset(f); if (filesize(f)=131072) and (disksize(i-64)=128*1024) then
listbox1.Items.add(letter+':\firmware.bin');
CloseFile(F); end; end; end;现在来说下问题.我这段代码是在一个 U盘升级程序中的.升级固件件时插上U盘有个自动查找firmware.bin 文件的代码.一般情况下没出现错误,但我用了个多功能的usb hub,然后USB接上升级就报错,说"缺少软盘"什么什么.hub在电脑上是以一个软盘的形式表现出来了,就是说 我的电脑 里可以看到一个额外的盘副 h:\盘----->就是这个东东.高手帮忙看看啊!
begin
Letter:=Chr(i);
sDrive:=Letter+':\';
DriveType:=GetDriveType(PChar(sDrive)); if DriveType=DRIVE_REMOVABLE then
begin //assignfile(f,letter+':\firmware.bin');
if FileExists(letter+':\firmware.bin') then //debug排错好象是在这里出错的,也可能是 begin
assignfile(f,letter+':\firmware.bin');
reset(f); if (filesize(f)=131072) and (disksize(i-64)=128*1024) then
listbox1.Items.add(letter+':\firmware.bin');
CloseFile(F); end; end; end;现在来说下问题.我这段代码是在一个 U盘升级程序中的.升级固件件时插上U盘有个自动查找firmware.bin 文件的代码.一般情况下没出现错误,但我用了个多功能的usb hub,然后USB接上升级就报错,说"缺少软盘"什么什么.hub在电脑上是以一个软盘的形式表现出来了,就是说 我的电脑 里可以看到一个额外的盘副 h:\盘----->就是这个东东.高手帮忙看看啊!
如果实在不行建议你用CreateFile方法来尝试查找文件firmware.bin是否存在,根据返回值判断。
function FileExist(const FileName: string): Boolean;
var
hFile: THandle;
begin
Result := False;
hFile := CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ,
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hFile <> INVALID_HANDLE_VALUE then
begin
CloseHandle(hFile);
Result := True;
end;
end;