C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
как узнать размер папки ?
Guest
Отправлено: 17.10.2005, 20:30


Не зарегистрирован







как узнать размер папки ?
Grigoriy
Отправлено: 18.10.2005, 07:13


Мастер участка

Группа: Участник
Сообщений: 381



QUOTE (Guest @ 17/10/2005, 20:30)
как узнать размер папки ?

Пробуйте вот :

CODE

__int64 GetSizeCatalogue(AnsiString namec);
__int64 GetSizeCatalogue(AnsiString namec)
{
__int64 sizetc;
AnsiString maskf;
TSearchRec SR;
char* d;
int handlef;
sizetc=0;
d=".";
if (*namec.AnsiLastChar()==*d)
{return 0;}
namec=namec+"\\";
maskf=namec+"*.*";
if (!FindFirst(maskf,faAnyFile,SR))
{
do
if (SR.Attr&faDirectory)
{
sizetc+=GetSizeCatalogue(namec+SR.Name);
}
else
{
sizetc+=SR.Size;
}
while (!FindNext(SR));
}
return sizetc;}


Только если размер какого либо файла больше чем 4294967295 байт, то я уверен, что будет ошибка.

Отредактировано Grigoriy — 18/10/2005, 07:48
Valdemar
Отправлено: 18.10.2005, 07:24


Мастер участка

Группа: Участник
Сообщений: 433



Посчитайте сумму размеров всех файлов, находящихся в нужной папке и во вложенных папках. Посмотрите функции findfirst, findnext.

Вернуться в Вопросы программирования в C++Builder