Чтобы получить свободное дисковое пространство, выполните следующее — поместите на форму компоненты, показанные на изображении и запишите следующий код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnCalculate: TButton;
cmbDrive: TComboBox;
Label4: TLabel;
GroupBox1: TGroupBox;
lblCapacity: TLabel;
lblFreeSpace: TLabel;
lblUsedSpace: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure btnCalculateClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnCalculateClick(Sender: TObject);
var
Free1,free2,Total1:Int64;
begin
GetDiskFreeSpaceEx(pchar(cmbDrive.Text), free1, total1, @free2);
lblCapacity.Caption := 'Объем : ' + IntToStr(Total1) +
' Байт '+ floatToStr(Total1 div (1024*1024)) + ' MB';
lblFreeSpace.Caption := 'Свободное пространство : ' +
IntToStr(Free1) + ' Байт '+ floatToStr(Free1 div (1024*1024)) + ' MB';
lblUsedSpace.Caption := 'Используемое пространство : ' +
IntToStr(Total1-Free1) + ' Байт '+ floatToStr((Total1-Free1) div (1024*1024)) + ' MB';
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i:= Ord('A') to Ord('Z') do
begin
if GetDriveType(PChar(Char(i)+':\'))=3 then
cmbDrive.Items.Add(Char(i)+':\');
end;
cmbDrive.Text:= cmbDrive.Items.Strings[0];
end;
end.
Комментарии