C++ Builder: получить информацию о дисках

Правда, для того, чтоб получить информацию о дисках можно обойтись и без функций работы с системной информацией, т.е. API Windows остается за бортом.

У C++ Builder есть собственные функции для этих целей.

В частности таковые:

  • DiskSize – функция возвращает размер диска (информация в байтах). Входным параметром функции является целое число. К примеру, 0 – означает текущий диск, 1 – диск А, 2 – диск В и т.д.;
  • DiskFree – функция возвращает размер свободного пространства (тоже в байтах, да).

Пример программы, с использованием этих функций:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;
__int64 Size;              //объявляем переменные размера
__int64 FreeSpace;         //и свободного пространства
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
 if(ComboBox1->ItemIndex>-1)                  //если выбран какой-либо элемент в функцию DiskSize будем передавать его номер
 {
  Size=DiskSize(ComboBox1->ItemIndex+1);      //получаем размер выбранного диска
  FreeSpace=DiskFree(ComboBox1->ItemIndex+1); //получаем свободное пространство
  if(Size>0)                                  //если размер диска не равен 0
  {
   Edit3->Text=IntToStr(Size/1024/1024);      //выводим общий объем диска пространство
   Edit2->Text=IntToStr(FreeSpace/1024/1024); //выводим свободное пространство
   Edit1->Text=IntToStr((Size-FreeSpace)/1024/1024);  //выводим занятое пространство
   CGauge1->Progress=FreeSpace*100/Size;      //строим круговую диаграмму занятого-не занятого пространства
  }
  else
  ShowMessage("Диска нет!");                  //сообщение о том, что таковой диск отсутствует
 }
}
//---------------------------------------------------------------------------

Результат выполнения виден на рисунке ниже.

Результат работы приложения

Архив программы можно скачать здесь.

0

  1. Спасибо, за информацию. Программа С++ предназначена для программистов и чем больше информации о ней будет поступать простым пользователям, тем больше ей будут интересоваться. Желаю Вам удачи!!!

  2. Впервые столкнулась с этой информацией о программе. Пока что вряд ли пригодится, но там посмотрим. Я если честно сразу и не поняла, спасибо Manya разжевала.

  3. спасиба за информацию, очень помогла. интересна была попробовать это сделать.

  4. Очень хорошая и удобная программа.Мне она ешё раньше понравилась.Форум являеться очень полезным!

  5. благодарю за полезную и очень подробную информацию очень пригодилась,еще раз спосибо

  6. Очень признателен за информацию о такого рода сведениях для работу в системах. Многие из нас начинающие, и поэтому всякая помощь во благо юзерам….

  7. Давно искал, толковый сайт с информацией о C++ все толково розжовано, описано и показано в картинках(деталях). Добавлю в закладки, спасибо за информацию. Жду новых статей в блоге)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *