¿Cómo copiar archivos y carpetas en Node.js? | de Sabesan Sathananthan | diciembre de 2022


Foto por Dziana Hasanbekava

En Node.js, hay varias formas de copiar archivos. Echemos un vistazo a las formas posibles y analicemos cada una de ellas. Este es mi artículo número 44 de Medium.

Él copyFile() La función, que puede copiar un archivo directamente al directorio de destino, realiza la acción más easy.

fs.copyFile('./knowledge.txt', './dest/data.txt');

El método anterior copia de forma asíncrona el archivo de src a dest. Si el destino ya existe, se sobrescribe de forma predeterminada. No se pasan argumentos a la función de devolución de llamada más allá de cualquier posible excepción. Node.js no garantiza que las operaciones de copia sean atómicas. Node.js intentará eliminar el archivo de destino si ocurre un error después de abrir el archivo de destino para escribir.

Hay una desventaja cuando usamos el método anterior. Si el directorio de destino no existe, se lanzará una excepción porque el directorio de destino debe existir (el método no creará automáticamente el directorio de destino). Por lo tanto, antes de usar el método anterior, el usuario debe validar si el directorio de destino definitivamente existe o no. Si el directorio de destino no existe, el usuario podría usar fs.mkdir()o fs.mkdirSync()para crear el directorio de destino. copyFile() El método no puede copiar directorios.

De esta manera, lea el contenido del archivo de origen y luego escriba en el archivo de destino. Si el contenido del archivo de origen debe modificarse durante la copia, este método es adecuado

La desventaja de este método es la misma que la anterior. copyFile() método. readFile() El método se utiliza para leer el contenido del archivo fuente y writeFile() El método solo puede escribir archivos en directorios existentes. Al usar este método, no podemos copiar directorios. El contenido se puede modificar mientras se copia, es la ventaja de utilizar este método.

readFile() método y writeFile() son el bloque completo de datos de operación. Si el tamaño del archivo es grande, el método anterior ejercerá más presión sobre los recursos del sistema. createReadStream() y createWriteStream() es usar la forma de flujo para manipular datos.

fs.createReadStream('./knowledge.txt').pipe(fs.createWriteStream(`./data.txt`));

El nuevo fs.cp() El método se ha agregado desde la versión 16.7.0 de Node.js. Con este método, toda la estructura de directorios, incluidos los subdirectorios y los archivos, se puede copiar de forma asíncrona desde src a dest. fs.cp() El método puede copiar un archivo o un directorio. la configuración recursive La propiedad debe establecerse en verdadero si se requiere una copia del directorio.

Para copiar archivos

Para copiar el directorio, incluidos los subdirectorios y archivos.

Como puedes ver, este fs.cp() El método es mucho mejor que los 3 métodos anteriores.

  1. No es necesario que exista el directorio de destino. El directorio de destino se creará automáticamente si aún no existe (independientemente del nivel de un directorio)
  2. Puede copiar completamente los archivos de toda la carpeta, incluidos los subdirectorios, sin copiarlos de forma recursiva por separado.

Cuando vaya a utilizar este método, lo primero que debe hacer es confirmar la versión de Node.js.

¿Qué sucede si desea copiar todos los archivos de la carpeta pero solo tiene una versión anterior de Node.js? Podemos copiar recursivamente algunos archivos además del comando nativo cp para Linux, que se trata en la siguiente sección:

Cómo utilizar:

copyDir('./element', './web page/residence');

Para ejecutar comandos nativos de Linux, podemos usar el exec o spawn comandos en child_process. Para copiar archivos o directorios, el Comando cp en Linux se usa

Podría usar los 5 métodos anteriores si está usando la última versión del nodo. Usando el módulo fs en el nodo, he compartido las formas más rápidas de copiar un archivo/directorio. Analizamos completamente los métodos asincrónicos a los que accedimos a través del módulo fs de Node.js.

Suscríbete a nuestro boletín semanal gratuito. Siga con nosotros Gorjeo, LinkedIn, Youtubey Discordia.

¿Buscas escalar tu startup de software program? Verificar Circuito.



Related Articles

Migración de usuarios de App Engine a Cloud Identification Platform (módulo 21)

publicado por wesley chun (@wescpy), promotor de desarrolladores, Google Cloud ...

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

spot_img

Stay in touch!

Follow our Instagram