tree.bac

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 Revised November 2013.
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$ = curdir$ & "/" & item$

        REM Check if we have a directory other than '.' and '..'
        IF LEN(item$) AND FILETYPE(newdir$) = 2 AND item$ <> "." AND item$ <> ".." THEN

            IF new THEN PRINT TAB$(level), "|"

            PRINT TAB$(level), "+------", item$
            new = 1

            Recurse_Dir(newdir$, level, 1)
        END IF

    REM Last entry in current directory?
    UNTIL LEN(item$) = 0

    CLOSE DIRECTORY mydir
END SUB

REM Start with current directory
Recurse_Dir(".", -1, 0)

Generated by GNU Enscript 1.6.5.90.