var
snumber,sbyte,remainc,sumc:dword;
begin
getDiskFreeSpace('c:\',snumber,sbyte,remainc,sumc); //C盘
label3.Caption:=intTostr((sumc*snumber*sbyte)div(1024*2))+' M'; //计算总容量
label4.Caption:=intTostr((remainc*snumber*sbyte)div(1024*2))+' M'; //计算剩余容量
end;结果如图:
我的C盘总容量是50G,和上面是结果不一致啊,代码哪里有问题么?
snumber,sbyte,remainc,sumc:dword;
begin
getDiskFreeSpace('c:\',snumber,sbyte,remainc,sumc); //C盘
label3.Caption:=intTostr((sumc*snumber*sbyte)div(1024*2))+' M'; //计算总容量
label4.Caption:=intTostr((remainc*snumber*sbyte)div(1024*2))+' M'; //计算剩余容量
end;结果如图:
我的C盘总容量是50G,和上面是结果不一致啊,代码哪里有问题么?
Available, TotalSpace: Int64;
begin
Available := 0;
TotalSpace := 0;
if GetDiskFreeSpaceEx('C:', Available, TotalSpace, nil) then
begin
Label3.Caption := FormatFloat('###0.# MB', TotalSpace / 1024 / 1024);
Label4.Caption := FormatFloat('###0.# MB', Available / 1024 / 1024);
end;
end;
snumber,sbyte,remainc,sumc:dword;
n : int64;
begin
getDiskFreeSpace('c:\',snumber,sbyte,remainc,sumc); //C盘
n := sumc*snumber*sbyte;
label3.Caption:=intTostr(n div(1024*1024))+' M'; //计算总容量
n := remainc*snumber*sbyte;
label4.Caption:=intTostr(n div(1024*1024))+' M'; //计算剩余容量
end;话说你为什么是1024*2呢?