Асинхронный запуск функций

Есть функция которая должна взять список файлов из папки. Затем нарезать имя файлов на свойства(по разделителю), а затем согласно этим свойствам создать структуру папок. Переместить эти файлы, по этим папкам и переименовать файлы. Загвоздка в том что функции по созданию и перемещению файлов запускаются синхронно что приводит к ошибке когда папок ещё нет а файл уже пытается переместится. Не понимаю причину почему не срабатывает async/await и что с этим делать.

const removeFiles = () => {
    const files = givMeFiles(path)    // получаем список файлов
    const sliceName = sliceNameAllFiles()   // нарезаем имена на св-ва 
    const createPath = "C:\\Users\\smolskij_a\\Documents\\project\\Новая папка" // корневая папка для архива

    if (files.length === sliceName.length) {
        files.forEach(async (item, i) => {
            const filePath = path + '/' + item
            const newPath = `${createPath}/${sliceName[i].speciality}/${sliceName[i].satge}`
            const newFilePath = `${createPath}/${sliceName[i].speciality}/${sliceName[i].satge}/${sliceName[i].room}`

            await fs.mkdir(newPath, { recursive: true }, err => {
                if(err) throw err; // не удалось создать папки
                console.log('Все папки успешно созданы');
            });

            await fs.rename(filePath, newFilePath, err => {
                if (err)
                    throw err // не удалось переместить файл
                console.log('Файл успешно перемещён')
            })

        })
    }
}

Ответы (0 шт):