Well, instead of a msgbox, suggest this....

Write to a non-protected folder on the user's drive, i..e, Open [path/file] For Append As #3. Then write debug info & close file.
If FindFirstFile returns -1, write the full path & file name & character count.
If FindFirstFile does return -1, your loop will abort at that subfolder level, so no further subfolders (if any) will be recursed.

I don't see any error handling in that routine, so if objFileStream failed, you'd probably get a crash in a compiled app, unless whatever routine calling this function uses On Error Resume Next. Otherwise, I'd suggest testing for that situation too.

With some simple debugging, I think you can narrow this down and figure out what's broke.