Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.037 c
5-1099825350
проходящий мимо
2004-11-07 14:02
2005.09.18
компонент на основе edit


14-1125085155
Progamer
2005-08-26 23:39
2005.09.18
Кони vs Ливерпуль


3-1123143946
Ega23
2005-08-04 12:25
2005.09.18
Разнесение данных по двум таблицам: имеел ли смысл?


4-1122470371
Jet
2005-07-27 17:19
2005.09.18
Преобразование координат на принтере


1-1124840973
ArMellon
2005-08-24 03:49
2005.09.18
как реализовать шифрование типизированных файлов