diff flys-backend/src/main/java/de/intevation/flys/utils/FileTools.java @ 1213:cc88db4a5b34

Added method walkTree() to traverse a directory tree. To be reused in HYK parser. flys-backend/trunk@2339 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 15 Jul 2011 15:36:59 +0000
parents 7121a40671ff
children
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/utils/FileTools.java	Fri Jul 15 14:33:12 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/utils/FileTools.java	Fri Jul 15 15:36:59 2011 +0000
@@ -192,5 +192,29 @@
 
         return out;
     }
+
+    public interface FileVisitor {
+        boolean visit(File file);
+    } // Visitor
+
+    public static void walkTree(File root, FileVisitor visitor) {
+
+        Stack<File> stack = new Stack<File>();
+
+        stack.push(root);
+
+        while (!stack.isEmpty()) {
+            File current = stack.pop();
+            if (!visitor.visit(current)) break;
+            if (current.isDirectory()) {
+                File [] subs = current.listFiles();
+                if (subs != null) {
+                    for (File f: subs) {
+                        stack.push(f);
+                    }
+                }
+            }
+        }
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org