Главная страница
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.024 c
6-1117434978
silvestr
2005-05-30 10:36
2005.09.18
Как изменить программно основной шлюз и DNS в настройках


6-1117295385
dolphin1
2005-05-28 19:49
2005.09.18
несколько инет коннекшенов


1-1124786728
ищущий ответ
2005-08-23 12:45
2005.09.18
Куда пропадает кнопка?


9-1116704296
parovoZZ
2005-05-21 23:38
2005.09.18
Вопрос по glTexGenfv


11-1106924318
Aux
2005-01-28 17:58
2005.09.18
Могу предложить зеркало для файлов