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换成别的字符也是同样的结果,为什么啊?

解决方案 »

  1.   

    你还没指定盘符: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';
      

  2.   

    这是完整版,在这个贴子下,能计算得到整个硬盘的大小(利用一个for 循环实现)
    http://community.csdn.net/Expert/topic/5490/5490385.xml?temp=.9806635