Как узнать размер диска более 2 ГБ в Delphi 3?
От: allrussia  
Дата: 06.06.02 08:06
Оценка:
Напоминаю, в Delphi 3
Re: Как узнать размер диска более 2 ГБ в Delphi 3?
От: Шевченко Александр http://alexsoft.home.nov.ru
Дата: 06.06.02 15:05
Оценка:
WinAPI: GetDiskFreeSpace или GetDiskFreeSpaceEx
Re: Как узнать размер диска более 2 ГБ в Delphi 3?
От: Serg Bormant  
Дата: 06.06.02 16:14
Оценка:
Здравствуйте allrussia, Вы писали:
A>Напоминаю, в Delphi 3
Как-то так...

program Project1;
{$apptype console}

uses windows;

{type}
{delphi3\source\rtl\win\windows.pas:30
  DWORD = Integer;
  BOOL = LongBool;
  ...}
{delphi3\source\rtl\win\windows.pas:66
  LONGLONG = Comp;
  PSID = Pointer;
  PLargeInteger = ^TLargeInteger;
  TLargeInteger = record
    case Integer of
    0: (
      LowPart: DWORD;
      HighPart: Longint);
    1: (
      QuadPart: LONGLONG);
  end;
  ...}
{delphi3\source\rtl\win\windows.pas:3203
function GetDiskFreeSpaceEx(lpDirectoryName: PChar;
  var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: Integer;
  lpTotalNumberOfFreeBytes: PInteger): BOOL; stdcall;
...
}

function _GetDiskFreeSpaceEx(lpDirectoryName: PChar;
  var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: TLargeInteger;
  var lpTotalNumberOfFreeBytes: TLargeInteger): BOOL; stdcall;
  external 'kernel32.dll' name 'GetDiskFreeSpaceExA';

var
  lpAvail, lpTotal, lpTotalFree: TLargeInteger;


begin
  if _GetDiskFreeSpaceEx('C:\', lpAvail, lpTotal, lpTotalFree) then
    writeln(
      lpAvail.QuadPart:15:0, 
      lpTotal.QuadPart:15:0,
      lpTotalFree.QuadPart:15:0)
  else
    writeln('error code (dec):', GetLastError);
end.
--

wbr, sb Правила форумов RSDN, Как правильно задавать вопросы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.