首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

避免驱动器A没有准备好错误

打印文章

分享到:
当你的程序存取A驱动器时,可能会被'Drive Not Ready'系统错误所中断,可以使用下面的函数来测试驱动器,以避免这种情况发生,代码如下:

function DiskInDrive(Drive: Char): Boolean;

var

ErrorMode: word;

begin

Drive: = UpCase(Drive);

if not (Drive in ['A'..'Z']) then

raise EConvertError.Create('Not a valid drive ID');

ErrorMode := SetErrorMode(SEM_FailCriticalErrors);

try

if DiskSize(Ord(Drive) - $40) = -1 then

DiskInDrive := False

else

DiskInDrive := True;

finally

SetErrorMode(ErrorMode);

end;

end;

本函数的工作原理是:首先将驱动器符转换为大写字母,然后关闭系统错误报告功能,执行磁盘操作,操作成功返回True,表明驱动器里存在磁盘;操作失败返回False,表明发生错误,函数结束时打开系统错误报告功能。

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章