Правда, для того, чтоб получить информацию о дисках можно обойтись и без функций работы с системной информацией, т.е. API Windows остается за бортом.
У C++ Builder есть собственные функции для этих целей.
В частности таковые:
- DiskSize – функция возвращает размер диска (информация в байтах). Входным параметром функции является целое число. К примеру, 0 – означает текущий диск, 1 – диск А, 2 – диск В и т.д.;
- DiskFree – функция возвращает размер свободного пространства (тоже в байтах, да).
Пример программы, с использованием этих функций:
#include
#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 …у меня выбивает эту ошибку …
Напишите, пожалуйста, полный текст ошибки. И в какой строке она происходит.