1 // Copyright 2009, Google Inc. All rights reserved.
3 package com
.google
.appengine
.tools
.util
;
6 import java
.util
.Arrays
;
7 import java
.util
.Iterator
;
8 import java
.util
.LinkedList
;
9 import java
.util
.NoSuchElementException
;
12 * Walks a directory tree, returning all the files.
16 public class FileIterator
implements Iterator
<File
>, Iterable
<File
> {
17 private LinkedList
<File
> dirs
= new LinkedList
<File
>();
18 private Iterator
<File
> files
;
21 public FileIterator(File base
) {
22 File
[] baseFiles
= base
.listFiles();
23 if (baseFiles
!= null) {
24 files
= Arrays
.asList(baseFiles
).iterator();
30 public boolean hasNext() {
37 throw new NoSuchElementException();
42 private File
_next() {
45 while (files
!= null) {
47 File f
= files
.next();
48 if (f
.isDirectory()) {
54 } catch (NoSuchElementException ex
) {
58 files
= Arrays
.asList(dirs
.removeFirst().listFiles()).iterator();
65 public void remove() {
66 throw new UnsupportedOperationException();
69 public Iterator
<File
> iterator() {