• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 171
  • Last Modified:

What's the best way to know the size of a directory and a file?

What's the best way to know the size of a directory and a file?
I want to know the size of a directory or the size of the files which are in this directory.
What's the best way to determine the size ?
By using :
Filesize
TFileStream...
0
nk51
Asked:
nk51
  • 3
  • 2
1 Solution
 
nk51Author Commented:
I'm using Delphi 3.0
0
 
freterCommented:
You'll need to use the FindFirst / FindNext function set to grab all the files in a dir. These two functions return a record which contains the file size information (and many other vital information).

rgds, Freter
0
 
interCommented:
Hi,
You can do it with the following recursive procedure -I have written the code-

function SizeOfDir(Path : String):integer;
var
  SearchRec : TSearchRec;
  res       : integer;
begin
  Result := 0;
  res := FindFirst(Path+'\*.*', faAnyFile, SearchRec);
  while res = 0 do
  begin
      if (SearchRec.Name = '.') or (SearchRec.Name = '..') then
      begin
        res := FindNext(SearchRec);
        continue;
      end;
      if SearchRec.Attr and faDirectory > 0 then
         Inc(Result, SizeOfDir(Path+'\'+SearchRec.Name))
      else Inc(Result, SearchRec.Size);
      res := FindNext(SearchRec);
      Application.ProcessMessages;
  end;
end;

procedure TDemoForm.Button1Click(Sender: TObject);
begin
  DirSize := 0;
  Caption := IntToStr(SizeOfDir('c:\winnt')); //do not add \ to the end of dir name!!!
end;

Determining size of file is much easiser for example

function SizeOfFileX(S : string):integer;
var
  T : TFileStream;
begin
  Result := 0;
  T := TFileStream.Create(S, fmOpenRead);
  try
     Result := T.Size;
  finally
    T.Free;
  end;
end;

Regards, Igor
0
Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

 
nk51Author Commented:
Thanks
0
 
interCommented:
Soryy,
ignore the DirSize := 0 line above
0
 
nk51Author Commented:
ok
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now