Проблема в флаге 'w'
, так как усекает существующий файл до нулевой длины , поэтому, поскольку вы открываете файл до получения его размера, вы получаете 0
.
Чтобы получить размер, вы можете просто использовать путь к файлу без использования File.open
:
a = '/users/rich/desktop/test1.png'
File.size(a)
Или, если вам нужно создать объект File
, просто используйте флаг 'r'
:
a = '/users/rich/desktop/test1.png'
s = File.open(a, 'r')
Теперь вы можете использовать File.size(a)
или s.size
, чтобы получить размер файла.