Оно работает именно как мне надо. Но вот как оно написано, как-то стыдно..
fs.rename асинхронный, если ты пытаешься всё делать синхронно и не заморачиваться, то используй fs.renameSync. Тем более сели хочешь поймать ошибку в том же блоке try/catch Обычная практика не создавать строки путей руками, а импользовать методы встроенного модуля path, такие как join или resolve, так как операционные и файловые системы могут быть разными и форматы путей к файлам могут отличаться. Но если ты делаешь только для себя то вероятно без разницы. readdirSync возвращает список файлов И директорий. То есть может произойти много неприятных ситуаций, переместишь папку в папку, например. Получишь ошибку при попытке переместить папку в саму себя. Я тебе не гарантирую что в твоём случае это произойдёт, но лучше предупредить такое поведение и убрать из списка директории. Опять же, если делаешь для себя, то ты можешь соблюдать все предварительные условия для выполнения. Если для других, то думай "а что если этот файл в списке будет раньше, а что если эта директория уже есть". И старайся покрыть все возможности "недобросовестного" использования твоей программ.
Обсуждают сегодня