![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать размер каталога по пути? [D7]
Roman_S © (2007-03-03 19:39:00)Как узнать размер каталога? (в каталоге находится несколько файлов и подкаталогов с файлами)
Известен путь к нему.
DVM (2007-03-03 23:42:00) [1]Подкаталоги рекурсией
DVM (2007-03-03 23:41:00) [2]
function GetDirectorySize(const Path: string): Int64;
var
FD : TWin32FindData;
FH : THandle;
TempSize: TULargeInteger;
begin
Result := 0;
if Path = '' then exit;
if not(DirExists(Path)) then exit;
FH := Windows.FindFirstFile(PChar(Path + '*.*' ), FD);
repeat
if (FH<>INVALID_HANDLE_VALUE) and (FD.cFileName <> string('.')) and
(FD.cFileName<>string('..')) then
begin
if (FILE_ATTRIBUTE_DIRECTORY and FD.dwFileAttributes) <> 0 then
Inc(Result, GetDirectorySize(Path + FD.cFileName + '\'))
else
begin
TempSize.LowPart := FD.nFileSizeLow;
TempSize.HighPart := FD.nFileSizeHigh;
Inc(Result, TempSize.QuadPart);
end;
end;
until Windows.FindNextFile(FH, FD) = false;
if FH <> 0 then Windows.FindClose(FH);
end;
Anatoly Podgoretsky (2007-03-03 22:32:00) [3]Что такое размер каталог, вроде как безразмерное
Virgo_Style (2007-03-03 20:07:00) [4]суммированием размеров файлов и файлов-в-подкаталогах. О том, как их всех найти - см. здесь http://www.delphimaster.ru/cgi-bin/forum.pl?id=1172905502&n=18