add methods for recursively listing all files under a directory (and its subdirectories)