Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
1212:dd948530fd57 | 1213:cc88db4a5b34 |
---|---|
190 out.add(hf.file); | 190 out.add(hf.file); |
191 } | 191 } |
192 | 192 |
193 return out; | 193 return out; |
194 } | 194 } |
195 | |
196 public interface FileVisitor { | |
197 boolean visit(File file); | |
198 } // Visitor | |
199 | |
200 public static void walkTree(File root, FileVisitor visitor) { | |
201 | |
202 Stack<File> stack = new Stack<File>(); | |
203 | |
204 stack.push(root); | |
205 | |
206 while (!stack.isEmpty()) { | |
207 File current = stack.pop(); | |
208 if (!visitor.visit(current)) break; | |
209 if (current.isDirectory()) { | |
210 File [] subs = current.listFiles(); | |
211 if (subs != null) { | |
212 for (File f: subs) { | |
213 stack.push(f); | |
214 } | |
215 } | |
216 } | |
217 } | |
218 } | |
195 } | 219 } |
196 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 220 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |