Определить размер папки и ее подпапок для начинающих программистов достаточно проблематичная задача, но реализовать такое в C++ Builder не так и сложно. Для упрощения вычисления размера папки можно написать следующую функцию с несколькими передаваемыми значениями:
void FolderSize(AnsiString Folder, int &Size, int &fCount, int &folCount)
{
TSearchRec SR;
if (Folder[Folder.Length()] == '\\')
Folder.SetLength(Folder.Length() - 1);
if (FindFirst(Folder + "\\*.*", faAnyFile, SR) == 0)
do
{
if (SR.Name != "." && SR.Name != "..")
{
if ((SR.Attr & faDirectory) != 0)
{
FolderSize(Folder + "\\" + SR.Name, Size, fCount, folCount);
folCount++;
}
else
{
Size = Size + SR.Size;
fCount++;
}
}
} while (FindNext(SR) == 0);
FindClose(SR);
}
Функция записывает данные в параметры Size. Размер папки определяется в байтах.
fCount - общее количество файлов в папке.
folCount - общее количество подпапок в папке.