我正在Delphi
写一个应用程序。它是一个文件浏览器,可以复制,删除等学校项目。当应用程序检测到可移动设备时,我正在尝试将文件复制到其中一个。
我的参数c0000013
出现76b6b7c 4 76b6b7c 76b6b7c
错误。
我读到将值ErrorMode
更改为2会修复它。是的它修复了但我无法直接从Delphi
app更改此变量。我知道一个usb是usb ghost,但我不知道如何隐藏这个usb或跳过它。由于这个错误我甚至无法检查。
如果需要,可以从应用程序修复它吗?
答案 0 :(得分:0)
错误c0000013
表示您正在访问的位置没有(可读)媒体
请参阅:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382%28v=vs.85%29.aspx
因此,检查错误是完全可以的,如果没有媒体则继续前进。
您可以获取所有USB设备的列表(请参阅:Delphi - How to get list of USB removable hard drives and memory sticks?)
procedure GetUsbDrives(List: TStrings);
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
List.Add(Drive);
end;
finally
List.EndUpdate;
end;
end;
如果您随后访问驱动器并收到错误,只需使用try-except检测是否有任何问题,请参阅:Delphi - how to get a list of all files of directory
function IsDevicePresent(DriveLetterOrPath: string): boolean;
const
success = 0;
Win_DeviceIsPresent = true;
Fail_DeviceNotPresent = false;
var
SearchRec: TSearchRec;
Drive: string;
begin
Drive:= ExtractFileDrive(DriveLetterOrPath);
try
Result:= (FindFirst(Drive, faAnyFile, SearchRec) = success);
except
Result:= Fail_DeviceNotPresent;
end; {try}
end;