Текущий архив: 2005.09.18;
Скачать: CL | DM;
Вниз
Как узнать размер папки Найти похожие ветки
← →
Jupiter © (2005-07-26 11:30) [0]Помогите пожалуйста узнать размер папки(Пуста она или нет).
Заранее благодарен.
← →
kblc © (2005-07-26 11:44) [1]Пуста она или нет? или её размер?
← →
kblc © (2005-07-26 11:48) [2]Что значит пуста? ты же знаешь что файлы могут быть и нулевым размером!
Уточни.
← →
Jupiter © (2005-07-26 12:07) [3]Нужно узнать размер
Но если знаешь как узнать пуста она или нет поделись пожалуйста
← →
Fay © (2005-07-26 12:15) [4]2 Jupiter © (26.07.05 11:30)
Нужно узнать, сколько она занимает на диске?
Или сумму размеров файлов внутри?
← →
Ботвин Дмитрий (2005-07-26 12:22) [5]Вот так наверно узнаешь и размер и колво-во файлов в паке.
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;
Если внутри папки есть вложенные папки, рекурсию, я думаю сам сделаешь.
← →
kblc © (2005-07-26 13:07) [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);
Вроде всё
← →
Fay © (2005-07-26 13:20) [7]2 kblc © (26.07.05 13:07) [6]
А папки ".." и "." ? 8)
← →
begin...end © (2005-07-26 13:49) [8]> kblc © (26.07.05 13:07) [6]
> if sr.Attr=faDirectory then
Ну-ну.
← →
Fay © (2005-07-26 13:54) [9]2 begin...end © (26.07.05 13:49) [8]
Оно там флаговое? Тогда прикольно 8)
← →
kblc © (2005-07-26 14:00) [10]Специально для 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);
Теперь вроде точно всё ;)
← →
kblc © (2005-07-26 14:02) [11]Кароче... запарили... ;)) измени как надо ;) а мне ещё работать надо ;)
Страницы: 1 вся ветка
Текущий архив: 2005.09.18;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.024 c