summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/DirectorySizeVisitor.java
blob: 8996d8cdef635c5dd744896c2fbcb3f9023616b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* DirectorySizeVisitor.java */

import java.io.*;

public class DirectorySizeVisitor
implements DirectoryVisitor
{
  int  files = 0;
  int  dirs  = 0;
  long size  = 0;

  public void enterDirectory(File dir)
  {
    ++dirs;
  }

  public void leaveDirectory(File dir)
  {
  }

  public void visitFile(File file)
  {
    ++files;
    size += file.length();
  }

  public int getDirs()
  {
    return dirs;
  }

  public int getFiles()
  {
    return files;
  }

  public long getSize()
  {
    return size;
  }
}