使用函数的一个有关问题,小弟我用GetDiskFreeSpaceEx得到硬盘的大小,但返回值太大,42,598,848G
使用函数的一个问题,我用GetDiskFreeSpaceEx得到硬盘的大小,但返回值太大,42,598,848G
procedure TForm1.Button1Click(Sender: TObject);
var d:Char;
userFreeBytes,totalBytes,freeBytes:Int64;
begin
GetDiskFreeSpaceEx(PChar(d+ ':\ '),userFreeBytes,totalBytes,@freeBytes);
Edit1.Text:=Formatfloat( '###,##0 ',(((totalBytes)div 1024)div 1024)div 1024)+ 'G ';
Edit2.Text:=Formatfloat( '###,##0 ',freeBytes)+ '字节 ';
end;
end.
返回值太大,且把d换成别的字符也是同样的结果,为什么啊?
------解决方案--------------------
你还没指定盘符:
var
d:Char;
userFreeBytes,totalBytes,freeBytes:Int64;
begin
d:= 'C '; //指定C盘
GetDiskFreeSpaceEx(PChar(d+ ':\ '),userFreeBytes,totalBytes,@freeBytes);
Edit1.Text:=Formatfloat( '###,##0 ',totalBytes div 1024 div 1024 div 1024)+ 'G ';
procedure TForm1.Button1Click(Sender: TObject);
var d:Char;
userFreeBytes,totalBytes,freeBytes:Int64;
begin
GetDiskFreeSpaceEx(PChar(d+ ':\ '),userFreeBytes,totalBytes,@freeBytes);
Edit1.Text:=Formatfloat( '###,##0 ',(((totalBytes)div 1024)div 1024)div 1024)+ 'G ';
Edit2.Text:=Formatfloat( '###,##0 ',freeBytes)+ '字节 ';
end;
end.
返回值太大,且把d换成别的字符也是同样的结果,为什么啊?
------解决方案--------------------
你还没指定盘符:
var
d:Char;
userFreeBytes,totalBytes,freeBytes:Int64;
begin
d:= 'C '; //指定C盘
GetDiskFreeSpaceEx(PChar(d+ ':\ '),userFreeBytes,totalBytes,@freeBytes);
Edit1.Text:=Formatfloat( '###,##0 ',totalBytes div 1024 div 1024 div 1024)+ 'G ';