Na formę kładziemy następujące komponenty: DriveComboBox1, Button1 oraz Label1.Po naciśnięciu przycisku Button1, na Labelu wyświetli się informacja i ilości wolnego miejsca na dysku w MB.Literę dysku wybierać będziemy poprzez DriveComboBox1.
Aby sprawdzić ilośc wolnego miejsca na dysku, należy posiadać podstawową wiedzę o dyskach twardych, głównie jak są zbudowane oraz jak są zapisywane dane na dyskach.Do odczytu ilości wolnego miejsca skorzystamy z funkcji
GetDiskFreeSpace .
Dodajemy nagłówek
#include <shellapi.h>
Zdarzenie OnClick przycisku uzupełniamy następującym kodem:
void __fastcall TForm1::Button1Click(TObject *Sender)
{String drive = DriveComboBox1->Drive;
drive += ":";
DWORD SectPerClust, BytesPerSect, FreeClusters, TotalClusters;
GetDiskFreeSpace(drive.c_str(), &SectPerClust, &BytesPerSect, &FreeClusters, &TotalClusters);
float DiskFree = (BytesPerSect * SectPerClust * FreeClusters) / (1024 * 1024);// Free MB
float DiskSize = (BytesPerSect * SectPerClust * TotalClusters) / (1024 * 1024);// Disk Size MB
Label1->Caption = FloatToStrF(DiskFree, ffFixed, 10, 2);
}