Index: Lib/javaos.py =================================================================== --- Lib/javaos.py (revision 3325) +++ Lib/javaos.py (working copy) @@ -128,6 +128,35 @@ def rename(path, newpath): if not File(path).renameTo(File(newpath)): raise OSError(0, "couldn't rename file", path) +def walk(top, topdown=True, onerror=None): + from os.path import join, isdir, islink + try: + names = listdir(top) + except error, err: + if onerror is not None: + onerror(err) + return + + dirs, nondirs = [], [] + for name in names: + if isdir(join(top, name)): + dirs.append(name) + else: + nondirs.append(name) + + if topdown: + yield top, dirs, nondirs + for name in dirs: + path = join(top, name) + if not islink(path): + for x in walk(path, topdown, onerror): + yield x + if not topdown: + yield top, dirs, nondirs + +__all__.append("walk") + + def rmdir(path): if not File(path).delete(): raise OSError(0, "couldn't delete directory", path)