GetDiskFreeSpaceEx: function (Directory: PChar; var FreeAvailable,
TotalSpace: TLargeInteger; TotalFree: PLargeInteger): Bool stdcall = nil;
你打开SysUtils.pas,就会发现如上的定义
TotalFree: PLargeInteger
PLargeInteger = ^TLargeInteger;
TLargeInteger = Int64;
你的freebytes是int64,所以传个函数用@freebytes
TotalSpace: TLargeInteger; TotalFree: PLargeInteger): Bool stdcall = nil;
你打开SysUtils.pas,就会发现如上的定义
TotalFree: PLargeInteger
PLargeInteger = ^TLargeInteger;
TLargeInteger = Int64;
你的freebytes是int64,所以传个函数用@freebytes
BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // pointer to the directory name
PULARGE_INTEGER lpFreeBytesAvailableToCaller, // receives the number of bytes on
// disk available to the caller
PULARGE_INTEGER lpTotalNumberOfBytes, // receives the number of bytes on disk
PULARGE_INTEGER lpTotalNumberOfFreeBytes // receives the free bytes on disk
);//附我的源代码
procedure TForm1.Button2Click(Sender: TObject);
var userFreeBytes,totalBytes,freeBytes:Int64;
begin
if NOT GetDiskFreeSpaceEx(PChar(Edit1.Text),userFreeBytes,totalBytes,@freeBytes) then begin
ShowMessage('操作失败');
exit;
end;
Label3.Caption:='该驱动器总共容量'+Formatfloat('###,##0',totalBytes)+'字节'
+#13+'该驱动器可用容量'+Formatfloat('###,##0',freeBytes)+'字节'
+#13+'该驱动器可用用户容量'+Formatfloat('###,##0',userFreeBytes)+'字节';
end;您的定义是如何得知的呢,delphi中查不到呀,谢谢!
var userFreeBytes,totalBytes,freeBytes:Int64;
begin
if NOT GetDiskFreeSpaceEx(PChar(Edit1.Text),userFreeBytes,totalBytes,@freeBytes) then begin
ShowMessage('操作失败');
exit;
end;
Label3.Caption:='该驱动器总共容量'+Formatfloat('###,##0',totalBytes)+'字节'
+#13+'该驱动器可用容量'+Formatfloat('###,##0',freeBytes)+'字节'
+#13+'该驱动器可用用户容量'+Formatfloat('###,##0',userFreeBytes)+'字节';
end;