www.demi-s.narod.ru

Delphi
Статьи:

· Интерфейс

· WinAPI

· Компоненты

· Базы данных

· ShellAPI



WinAPI


Как подсчитать занимаемое директорией место

Возвращается размер в байтах.

var
  dirbytes : integer; 

function TFileBrowser.DirSize(dir:string):integer;
var
  searchrec : TSearchRec;
  separator : string; 
begin
  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 begin 
      dirbytes := dirbytes + searchrec.size; 
      {Memo1.Lines.Add(dir+separator+searchrec.name);} 
    end else if DirectoryExists(dir+separator+searchrec.name) then begin 
      if (searchrec.name<>'.') and (searchrec.name<>'..') then begin 
        DirSize(dir+separator+searchrec.name); 
      end; 
    end; 
    while FindNext(searchrec) = 0 do begin 
      if FileExists(dir+separator+searchrec.name) then begin 
        dirbytes := dirbytes + searchrec.size; 
        {Memo1.Lines.Add(dir+separator+searchrec.name);} 
      end else if DirectoryExists(dir+separator+searchrec.name) then 
      begin 
        if (searchrec.name<>'.') and (searchrec.name<>'..') then begin 
          dirsize(dir+separator+searchrec.name); 
        end; 
      end; 
    end; 
  end; 
  FindClose(searchrec); 
end; 


Hosted by uCoz