Just use stat like it's been said a thousand times already. If you need to elaborate a list of files use it in conjunction with find.
Code:
find /path/to/dir -name '*' <whatever-else-you-want-to-find> -exec stat --format='%n %s' '{}' \;
This will work regardless of the spaces or any other special stuff in the file names. It's also the proper way to do it. Parsing the output from ls is something that I always discourage.