From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/Listing2105.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/Listing2105.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/Listing2105.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/Listing2105.java b/Master/Reference Architectures and Patterns/hjp5/examples/Listing2105.java new file mode 100644 index 0000000..fba2e38 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/Listing2105.java @@ -0,0 +1,46 @@ +/* Listing2105.java */ + +import java.io.*; + +public class Listing2105 +{ + static void traverse(File dir, DirectoryVisitor visitor) + { + if (!dir.isDirectory()) { + throw new IllegalArgumentException( + "not a directory: " + dir.getName() + ); + } + visitor.enterDirectory(dir); + File[] entries = dir.listFiles( + new FileFilter() + { + public boolean accept(File pathname) + { + return true; + } + } + ); + for (int i = 0; i < entries.length; ++i) { + if (entries[i].isDirectory()) { + traverse(entries[i], visitor); + } else { + visitor.visitFile(entries[i]); + } + } + visitor.leaveDirectory(dir); + } + + public static void main(String[] args) + { + File file = new File(args[0]); + //Bildschirmausgabe der Struktur + traverse(file, new DirectoryPrintVisitor()); + //Größen ermitteln + DirectorySizeVisitor visitor = new DirectorySizeVisitor(); + traverse(file, visitor); + System.out.println("directories: " + visitor.getDirs()); + System.out.println("files: " + visitor.getFiles()); + System.out.println("size: " + visitor.getSize()); + } +} \ No newline at end of file -- cgit v1.2.3