#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
|