Правда, для того, чтоб получить информацию о дисках можно обойтись и без функций работы с системной информацией, т.е. 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("Диска нет!"); //сообщение о том, что таковой диск отсутствует } } //--------------------------------------------------------------------------- |
Результат выполнения виден на рисунке ниже.
Архив программы можно скачать здесь.
Спасибо, за информацию. Программа С++ предназначена для программистов и чем больше информации о ней будет поступать простым пользователям, тем больше ей будут интересоваться. Желаю Вам удачи!!!
Спасибо. Вам тоже успехов =)
Впервые столкнулась с этой информацией о программе. Пока что вряд ли пригодится, но там посмотрим. Я если честно сразу и не поняла, спасибо Manya разжевала.
спасибо за информаю. хорошая программа хорошо что нашел информацию о ней
Спасибо, что розказали что к чему) очень полезный форум
спасиба за информацию, очень помогла. интересна была попробовать это сделать.
Очень хорошая и удобная программа.Мне она ешё раньше понравилась.Форум являеться очень полезным!
благодарю за полезную и очень подробную информацию очень пригодилась,еще раз спосибо
Всегда пожалуйста =)
теперь мне всё очено просто большое спосибо
приходите еще )
Очень признателен за информацию о такого рода сведениях для работу в системах. Многие из нас начинающие, и поэтому всякая помощь во благо юзерам….
Давно искал, толковый сайт с информацией о C++ все толково розжовано, описано и показано в картинках(деталях). Добавлю в закладки, спасибо за информацию. Жду новых статей в блоге)
[Linker Fatal Error] Fatal: Illegal option: u …у меня выбивает эту ошибку …
Напишите, пожалуйста, полный текст ошибки. И в какой строке она происходит.