Почему папка весит 0 байт?
1. зависит от файловой системы.
2. 0 байт вам показывает кто? Не каждая программа ковыряет на таком уровне, чтобы учитывать размер всего, где лежит информация про файл и про папку. Попробуйте другие программы. В Линуксе стандартный ls сразу будет показываьт, что папка занимает как минимум 1 блок (сейчас это обычно 4 кб).
3. Для файлов - тоже самое, если у вас есть файл в 5 байт, у него где-то есть название, аттрибуты доступа, сектор в котором он лежит, но ваша программа это не показывает.
Вывод, пустая папка весит не 0 байт, но подобная информация не для пользователя, а для администратора, который учитывает занятое место специальными программами, с учетом понимания как устроена файловая система.
Собственно папку можно рассматривать как особый файл, который содержит описания вложенных в эту папку других файлов и папок. То есть, если в папке ничего нет - то и размер этого файла нулевой, сама папка описана в родительской и её данные занимают место там.