- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi如何获取硬盘所有的分区容量
function GetDiskInfo:string; // 获取硬盘信息
var str:string;
Drivers:Integer;
driver:char;
i,temp:integer;
d1,d2,d3,d4: DWORD; //
ss:string;
begin
ss:='';
Drivers:=GetLogicalDrives;
temp:=(1 and Drivers);
for i:=0 to 26 do
begin
if temp=1 then
begin
driver:=char(i+integer('A'));
str:=driver+':';
if (driver<>'') and (getdrivetype(pchar(str))<>drive_cdrom) and (getdrivetype(pchar(str))<>DRIVE_REMOVABLE) then
begin
GetDiskFreeSpace(pchar(str),d1,d2,d3,d4);
ss:=ss+str+Format('容量: %f GB,',[d4/1024/1024/1024*d2*d1])+Format('剩余容量: %f GB',[d3/1024/1024/1024*d2*d1])+#13#10;
end;
end;
drivers:=(drivers shr 1);
temp:=(1 and Drivers);
end;
result:=ss;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text:=GetDiskInfo;
end;
显示结果:
C:容量: 30.01 GB,剩余容量: 8.01 GB
D:容量: 125.00 GB,剩余容量: 4.03 GB
E:容量: 125.00 GB,剩余容量: 5.83 GB
F:容量: 18.07 GB,剩余容量: 0.61 GB