Метод cp

Метод cp копирует структуру папок, включая подпапки и файлы. В первом параметре метода указываем путь к исходной папке, во втором параметре - путь к папке, в которую копируем, в третьем параметре - объект с опциями. В четвертом необязательном параметре можно указать коллбэк.

Синтаксис

javascriptfs.cp(исходная папка, куда копируем, опции, коллбэк);

Объект с опциями

Опция Описание
recursive Если true, копирует папку рекурсивно, то есть со всем содержимым.

Пример

Пусть у нас есть следующая файловая структура:

Пример

Давайте асинхронно скопируем папку dir1 через await:

javascriptimport fs from 'fs/promises';

try {
  await fs.cp('./dir1', './dir2', { recursive: true });
  console.log('directory copied');
} catch (err) {
  console.log(err);
}

Пример

Теперь давайте асинхронно скопируем папку из предыдущего примера через then:

javascriptimport fs from 'fs/promises';

fs.cp('./dir1', './dir2', { recursive: true }).then(data => {
  console.log('directory copied');
}).catch(err => {
  console.log(err);
});

Пример

Давайте асинхронно скопируем папку через коллбэк:

javascriptimport fs from 'fs';
    
fs.cp('./dir1', './dir2', { recursive: true }, err => {
  if (!err) {
    console.log('directory copied');
  } else {
    console.log(err);
  }
});

Пример

Теперь давайте синхронно скопируем папку через cpSync:

javascriptimport fs from 'fs';

try {
  fs.cpSync('./dir1', './dir2', { recursive: true });
  console.log('directory copied');
} catch (err) {
  console.log(err);
}