Have you tried git ls-tree?
git ls-tree --name-only -r <branch_name>
–name-only gives you just the file names.
-r recurses into sub directories.
If you want the name of the sub-directory listed before recursing into it, add -t to the argument list.