Четверг, 02.05.2024
Просто сайт
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Borland C++ Builder 6 » Функция получения размера папки (Папки)
Функция получения размера папки
demenevДата: Четверг, 07.01.2010, 16:10 | Сообщение # 1
Группа: Удаленные





void FolderSize(AnsiString Folder,int &Size,int &fCount,int &folCount)
{
//функция записывает в параметры Size - размер папки в байтах
//fCount - общее количество файлов в папке
//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);
}

//Применение------------------------------------------------------------

void __fastcall TForm1::sButton1Click(TObject *Sender)
{
int a,b,c;

FolderSize("C:\\1\\",a,b,c);

Form1->Caption="Размер папки в байтах "+IntToStr(a);
}

 
Форум » Программирование » Borland C++ Builder 6 » Функция получения размера папки (Папки)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Создать бесплатный сайт с uCoz