Mercurial > dive4elements > river
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 :