Monday, November 08, 2010 at 12:02 AM.

system.verbs.builtins.file.visitFolder

on visitFolder (path, level, callback) {
	local(theOS = sys.os());
	on traverse (path) { <<local handler -- actually does the traversing
		if currentlevel > level {
			return (true)};
		
		sys.systemTask (); <<give the Finder a shot at updating windows
		rollBeachBall ();
		
		local (f);
		fileloop (f in path) {
			if file.isFolder (f) {
				currentlevel++;
				if not traverse (f) { <<recurse
					return (false)}; <<unwind recursion on error
				currentlevel--};
			if not callback^ (f) { <<call the caller-supplied callback routine
				return (false)}}}; <<unwind recursion, callback says we're done
	
	local (currentlevel = 1);
	return (traverse (path))}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.