关于getDiskFreeSpace() 这个API
我的C盘总容量是50G,和上面是结果不一致啊,代码哪里有问题么?
[解决办法]
用getDiskFreeSpaceex,getDiskFreeSpace已过时了
[解决办法]
var
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;
[解决办法]
整数溢出了.用这个
var
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呢?