¿Cómo copiar la carpeta recursivamente en Node.js?

Node.js es una mejora del javaScript ya existente. Se utiliza para secuencias de comandos del lado del servidor. Se utiliza principalmente para desarrollar aplicaciones web dinámicas. Los desarrolladores de Node.js prefieren el uso de funciones asíncronas a las funciones síncronas, ya que las primeras no bloquean la ejecución del programa bajo ninguna circunstancia. Copiar archivos o carpetas con varias subcarpetas puede resultar tedioso con los métodos convencionales de copia de archivos de Node.js. Sin embargo, el uso de módulos adicionales facilita la tarea.

Los dos módulos en discusión son el módulo NCP y el módulo fs-extra. Ambos módulos admiten funciones asíncronas para ayudar en el proceso de copiar las carpetas de forma recursiva.

Los ejemplos a continuación demuestran el uso de estos módulos para copiar carpetas de forma recursiva.

Create a folder structure as follows 
in the working directory:
mkdir f1\f2\f3\f4\f5
notepad f1\f2\f3\f4\f5\new.txt
// Write some text and save the .txt file

Sintaxis:

ncp(source, destination, options, callback)

Parámetro:

  • fuente: ruta de archivo de la carpeta de origen.
  • destino: ruta de archivo de la carpeta de destino.
  • opciones
    • options.filter: una expresión regular que se puede usar para especificar si una carpeta/archivo debe copiarse u omitirse.
    • options.transform: una función que se puede usar para aplicar transformaciones de transmisión mientras se copia.
    • options.clobber: se puede configurar como verdadero o falso. Si se establece en false, ncp no sobrescribe los archivos que ya existen en el destino.
    • options.stopOnErr: se puede configurar como verdadero o falso. De forma predeterminada, se establece en falso, es decir, ncp continúa copiando, registra todos los errores y devuelve una array. Si se establece en verdadero, ncp se detiene en el primer error que encuentra.
  • devolución de llamada: una función que se llama al finalizar una tarea determinada y toma el error como primer parámetro. Si ocurre un error, la función de devolución de llamada lo maneja sin bloquear la ejecución del programa.

Ejemplo 1: Usando el módulo ncp
Instale el módulo ncp usando el siguiente comando:

npm install ncp

Nombre de archivo: archivo recursiveCopy.js

var ncp = require('ncp').ncp;
  
// Represents the number of pending
// file system requests at a time.
ncp.limit = 16;
  
// ncp(source, destination, callback) 
ncp('D:\\HTML\\f1', 'D:\\HTML\\recursive', 
        function (err) {
    if (err) {
        return console.error(err);
    }
  
    console.log('Folders copied recursively');
});

Producción:

Sintaxis:

fs.copy(source, destination, callback)

Parámetro:

  • fuente: ruta de archivo de la carpeta de origen.
  • destino: ruta de archivo de la carpeta de destino.
  • devolución de llamada: una función que se llama al finalizar una tarea determinada y toma el error como primer parámetro. Si ocurre un error, la función de devolución de llamada lo maneja sin bloquear la ejecución del programa. Si no se pasa la devolución de llamada, devuelve promesas.

Ejemplo 2: Usando el módulo fs-extra
Instale el módulo fs-extra usando el siguiente comando:

npm install fs-extra

Nombre de archivo: fsrecur.js

const fs = require('fs-extra');
  
// Async with promises:
fs.copy('D:\\HTML\\f1', 'D:\\HTML\\fsextra')
.then(() => console.log('Files copied successfully!'))
.catch(err => console.error(err));

Producción:

Explicación: Todas las carpetas dentro de f1 desde f2 hasta f5 se copian recursivamente en la carpeta ‘recursiva’. Cualquier archivo o carpeta dentro de estas carpetas se copia en la nueva carpeta.

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *