REM
REM Recursive walk through directories starting at current directory.
REM
REM Created August 8-15, 2009 by PvE - GPL
REM Revised May 2010.
REM
REM -----------------------------------------------------------------------------------------------------------
SUB Recurse_Dir(STRING curdir$, NUMBER level, NUMBER new)
LOCAL mydir TYPE DIR*
LOCAL item$, newdir$
REM Open current directory
OPEN curdir$ FOR DIRECTORY AS mydir
INCR level
REPEAT
REM Get subsequent files
GETFILE item$ FROM mydir
newdir$ = CONCAT$(curdir$, "/", item$)
REM Check if we have a directory other than '.' and '..'
IF ISTRUE(LEN(item$)) AND FILETYPE(newdir$) EQ 2 AND NOT(EQUAL(item$, ".")) AND NOT(EQUAL(item$, "..")) THEN
IF ISTRUE(new) THEN
PRINT TAB$(level), "|"
END IF
PRINT TAB$(level), "+------", item$
new = 1
Recurse_Dir(newdir$, level, 1)
END IF
REM Last entry in current directory?
UNTIL ISFALSE(LEN(item$))
CLOSE DIRECTORY mydir
END SUB
REM Start with current directory
Recurse_Dir(".", -1, 0)