/
Вопросы и ответы
/
JavaScript
/

как копировать папку рекурсивно в node js с помощью fs cp и fs cpsync

как копировать папку рекурсивно в node js с помощью fs cp и fs cpsync

год назад

Nikolai Gagarinov

Ответы

0

В Node.js можно скопировать папку рекурсивно с помощью модуля fs и его методов fs.copyFile и fs.copyFileSync. Оба метода позволяют копировать файлы, но для копирования директорий, необходимо воспользоваться другими методами и реализовать логику копирования рекурсивно самостоятельно.

  1. Установим зависимости:
npm install fs-extra
  1. Копируем папки рекурсивно:
const fs = require('fs-extra');

function copyFolderRecursiveSync(source, target) {
    let files = [];

    // Проверяем, существует ли исходная директория
    if (!fs.existsSync(source)) {
        console.log(""Папка не существует: "" + source);
        return;
    }

    // Убеждаемся, что целевая папка существует
    if (!fs.existsSync(target)) {
        fs.mkdirSync(target);
    }

    // Получаем содержимое директории
    files = fs.readdirSync(source);

    files.forEach(function(file) {
        let current = fs.lstatSync(source + '/' + file);

        if (current.isDirectory()) {
            copyFolderRecursiveSync(source + '/' + file, target + '/' + file);
        } else {
            fs.copyFileSync(source + '/' + file, target + '/' + file);
        }
    });
}

// Использование функции копирования папки рекурсивно
copyFolderRecursiveSync('путь_к_исходной_папке', 'путь_к_целевой_папке');

6 месяцев назад

Ivan Mamtsev