如何获取大容量硬盘容量 ( 积分: 0 )

  • 主题发起人 主题发起人 心情
  • 开始时间 开始时间

心情

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获取大于20G硬盘容量信息(总容量/剩余容量) 急,急,急!!!
 
function&nbsp;GetDiskInfo(Driver:String):&nbsp;TDiskInfo;<br>var<br>&nbsp;&nbsp;DriveType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;integer;<br>&nbsp;&nbsp;lpFreeBytesAvailableToCaller&nbsp;:&nbsp;int64;<br>&nbsp;&nbsp;lpTotalNumberOfBytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;int64;<br>&nbsp;&nbsp;lpTotalNumberOfFreeBytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TLargeInteger&nbsp;;<br>&nbsp;&nbsp;DiskAllSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Integer;<br>&nbsp;&nbsp;DiskFreeSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Integer;<br>&nbsp;&nbsp;DiskUseSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;DiskAllSpace&nbsp;&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;DiskFreeSpace&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;DiskUseSpace&nbsp;&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;DriveType:=GetDriveType(pchar(Driver+'/'));<br>&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;DriveType&nbsp;of<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DRIVE_FIXED,DRIVE_CDROM,DRIVE_REMOVABLE,DRIVE_REMOTE&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;GetDiskFreeSpaceEx(pchar(String(Driver)+'/')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,lpFreeBytesAvailableToCaller<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,lpTotalNumberOfBytes<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;@lpTotalNumberOfFreeBytes)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DiskAllSpace&nbsp;&nbsp;:=&nbsp;lpTotalNumberOfBytes&nbsp;Div&nbsp;(1024*1024);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DiskFreeSpace&nbsp;:=&nbsp;lpFreeBytesAvailableToCaller&nbsp;Div&nbsp;(1024*1024);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DiskUseSpace&nbsp;&nbsp;:=&nbsp;DiskAllSpace-DiskFreeSpace;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;E:&nbsp;Exception&nbsp;do&nbsp;showmessage('GetDiskInfo'+E.Message);<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Result.DiskAllSpace&nbsp;&nbsp;:=&nbsp;DiskAllSpace;<br>&nbsp;&nbsp;Result.DiskFreeSpace&nbsp;:=&nbsp;DiskFreeSpace;<br>&nbsp;&nbsp;Result.DiskUseSpace&nbsp;&nbsp;:=&nbsp;DiskUseSpace;<br>end;
 
我找到答案了,可以用&nbsp;api&nbsp;GetDiskFreeSpace()&nbsp;但要注意转换,不能INT,谢谢了
 
后退
顶部