Да код работоспособный, но проблема именно с файлом если есть иероглиф. Причем если просто русские буквы или тире он работает отлично.
Прикладываю для примера проблемный файл:
incorrect_file.rar
Он даже в архив не хотел запаковываться, сначала в папку пришлось положить.