![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать размер папки [D7, WinXP]
Jupiter © (2005-07-26 11:30:00)Помогите пожалуйста узнать размер папки(Пуста она или нет).
Заранее благодарен.
kblc (2005-07-26 14:02:00) [1]Кароче... запарили... ;)) измени как надо ;) а мне ещё работать надо ;)
kblc (2005-07-26 14:00:00) [2]Специально для Fay:
procedure GetFolderInfo(const Folder: string; var FileSizes, FileCount: Integer);
var
sr: TSearchRec;
begin
if FindFirst(Folder+'*.*', faAnyFile, sr) = 0 then
repeat
if sr.Attr=faDirectory then
begin
if (sr.Name<>'.') and (sr.Name<>'..') then
GetFolderInfo(Folder+'\'+sr.Name+'\', FileSizes, FileCount);
end else
begin
inc(FileSizes,sr.Size);
inc(FileCount);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
А потом вызываешь:
var
nSize, nCount: Integer;
...
nSize:=0;
nCount:=0;
GetFolderInfo('C:\',nSize, nCount);
Теперь вроде точно всё ;)
Fay (2005-07-26 13:54:00) [3]2 begin...end © (26.07.05 13:49) [8]
Оно там флаговое? Тогда прикольно 8)
begin...end (2005-07-26 13:49:00) [4]> kblc © (26.07.05 13:07) [6]
> if sr.Attr=faDirectory then
Ну-ну.
Fay (2005-07-26 13:20:00) [5]2 kblc © (26.07.05 13:07) [6]
А папки '..' и '.' ? 8)
kblc (2005-07-26 13:07:00) [6]
procedure GetFolderInfo(const Folder: string; var FileSizes, FileCount: Integer);
var
sr: TSearchRec;
begin
if FindFirst(Folder+'*.*', faAnyFile, sr) = 0 then
repeat
if sr.Attr=faDirectory then
GetFolderInfo(Folder+'\'+sr.Name+'\', FileSizes, FileCount) else
begin
inc(FileSizes,sr.Size);
inc(FileCount);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
А потом вызываешьGetFolderInfo('C:\',nSize, nCount);
Вроде всё
Ботвин Дмитрий (2005-07-26 12:22:00) [7]Вот так наверно узнаешь и размер и колво-во файлов в паке.
var sr: TSearchRec;
Razmer, KolBoFailov: integer;
begin
KolBoFailov:=0;
Razmer:=0;
if FindFirst(<Каталог>+'\*.*', faAnyFile, sr) = 0 then
repeat
Razmer:=Razmer+sr.Size;
inc(KolBoFailov);
until FindNext(sr) <> 0;
FindClose(sr);
end;
Если внутри папки есть вложенные папки, рекурсию, я думаю сам сделаешь.
Fay (2005-07-26 12:15:00) [8]2 Jupiter © (26.07.05 11:30)
Нужно узнать, сколько она занимает на диске?
Или сумму размеров файлов внутри?
Jupiter (2005-07-26 12:07:00) [9]Нужно узнать размер
Но если знаешь как узнать пуста она или нет поделись пожалуйста
kblc (2005-07-26 11:48:00) [10]Что значит пуста? ты же знаешь что файлы могут быть и нулевым размером!
Уточни.
kblc (2005-07-26 11:44:00) [11]Пуста она или нет? или её размер?