
25.09.2007, 18:52
|
 |
Продвинутый
|
|
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
|
|
Если что - 1 Тб - 1024 Гб.
Код:
uses
SysUtils;
implementation
function GetDiskSize(drive: Char; var free_size, total_size: Int64): Boolean;
var
RootPath: array[0..4] of Char;
RootPtr: PChar;
current_dir: string;
begin
RootPath[0] := Drive;
RootPath[1] := ':';
RootPath[2] := '\';
RootPath[3] := #0;
RootPtr := RootPath;
current_dir := GetCurrentDir;
if SetCurrentDir(drive + ':\') then
begin
GetDiskFreeSpaceEx(RootPtr, Free_size, Total_size, nil);
// this to turn back to original dir
SetCurrentDir(current_dir);
Result := True;
end
else
begin
Result := False;
Free_size := -1;
Total_size := -1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
free_size, total_size: Int64;
begin
if GetDiskSize(DriveComboBox1.Drive, free_size, total_size) then
ShowMessage('free space =' +
IntToStr(free_size) + #13 + 'total size=' +
IntToStr(total_size))
else
ShowMessage('No disk in drive!');
end;
__________________
|