检测D盘是否存在,是否为硬盘,是否格式化是否可写入数据 已解决
本帖最后由 m765555 于 2010-9-21 15:36 编辑本人想写一个软件自动安装到D盘,源码已写好,但仔细想了一下有些不完美,问题在于:
D盘存在吗?是硬盘吗,可写吗,如果是新分的区的话,还存在没有格式化就不能写入数据的问题。问题一想一大堆。请各位高手指点一下小弟,在此先谢了!本人QQ76555051 先建立个文件试试 补充一下, 有些代码是集各位高手的源码借签而来的,我上传了两个au3文件,其中一个是包含文件,缺少不得,另个360的安装文件是7.1版本的,我没有上传,请各位自己下载,下载后命名为360Safesetup.exe,两个au3文件和一个360的exe安装文件放到一起就可以运行了。喜欢的朋友可以下载,高手请飘过。 谢谢thesnow 的回贴,请给个简单点的实例可以吗?比如成功则安装软件,失败则退出 应该还要检查剩余空间是否够安装用~ #include <File.au3>
$test = CkDrive_WS('D:', '200') ;检测D盘是否有200MB可供读写
If $test Then MsgBox(0, '', 'OK~')
Func CkDrive_WS($path, $mixFree)
;afan说明:检测指定盘符是否有足够的空间以供读写
;参数:$path = 需检测的盘符;$mixFree = 最小的需求空间(MB)
;返回值:正确返回1;错误返回0,并设置 @Error 为以下值:
;@Error = 1,指定的盘符不存在
;@Error = 2,指定的盘符为只读光盘
;@Error = 3,指定的盘符不可写或未格式化
;@Error = 4,剩余空间不足
If Not FileExists($path) Then Return SetError(1, 0, 0)
If DriveGetType($path) = 'CDROM' Then Return SetError(2, 0, 0)
Local $tmp = _TempFile($path)
FileWrite($tmp, '')
If Not FileExists($tmp) Then Return SetError(3, 0, 0)
FileDelete($tmp)
Local $DSFree = DriveSpaceFree($path)
If $DSFree < $mixFree Then Return SetError(4, 0, 0)
Return 1
EndFunc ;==>CkDrive_WS 考虑挺全面的嘛呵呵 有没有高手给解决一下。如果D盘没有就自动安装到C盘里面去呢。。我只看到了这里只有检测D盘的功能。 借签 前辈的代码了!~ 非常感谢 ~ 谢谢版主,正好用上
页:
[1]