Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Каталоги \ Вычисление размера каталога

Вычисление размера каталога

uses FileCtrl;

function DirSize(Dir: string): integer;
var
  SearchRec: TSearchRec;
  Separator: string;
  DirBytes: integer;
begin
  Result:=-1;
  if Copy(Dir,Length(Dir),1)='' then
    Separator := ''
  else
    Separator := '';
  if FindFirst(Dir+Separator+'*.*',faAnyFile,SearchRec) = 0 then
  begin
    if FileExists(Dir+Separator+SearchRec.name) then
      DirBytes := DirBytes + SearchRec.Size
    else
    if DirectoryExists(Dir+Separator+SearchRec.name) then
    begin
      if (SearchRec.name<>'.') and (SearchRec.name<>'..') then
        DirSize(Dir+Separator+SearchRec.name);
    end;
    while FindNext(SearchRec) = 0 do
    begin
      if FileExists(Dir+Separator+SearchRec.name) then
        DirBytes := DirBytes + SearchRec.Size
      else
      if DirectoryExists(Dir+Separator+SearchRec.name) then
      begin
        if (SearchRec.name<>'.') and (SearchRec.name<>'..') then
          DirSize(Dir+Separator+SearchRec.name);
      end;
    end;
  end;
  FindClose(SearchRec);
  Result:=DirBytes;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  DirBytes: integer;
begin
  DirBytes := DirSize('c:windows');
  Form1.Label1.Caption := IntToStr(DirBytes);
end;

Название: Вычисление размера каталога
Дата публикации: 2004-06-13 (2800 Прочтено)

 
 

 

Page generation 0.034 seconds