Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.979 c
14-1124667340
Zer0
2005-08-22 03:35
2005.09.18
Quake 3 Engine Sources GPL ed


3-1123133263
k2
2005-08-04 09:27
2005.09.18
Курсорные переменные (oracle)


14-1124725089
Santrope
2005-08-22 19:38
2005.09.18
Как запретить вход в домен нескольким пользователям ?


1-1125236306
X-shadow
2005-08-28 17:38
2005.09.18
Модульность программы


2-1123573788
rolex
2005-08-09 11:49
2005.09.18
В событии Form1 onShow пишу Form2.ShowModal, но Form1 не показыва




   Наверх