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

Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
26 февраля 2025

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

  1. Установим зависимости:

    npm install fs-extra
    
  2. Копируем папки рекурсивно:

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('путь_к_исходной_папке', 'путь_к_целевой_папке');
0 0
Познакомьтесь с основами JavaScript бесплатно