6.3 Copia y eliminación de archivos y directorios

En Node.js podemos copiar archivos y directorios utilizando el módulo ‘fs’ (file system). Para realizar una copia de un archivo podemos utilizar la función ‘copyFile’ y para copiar un directorio vamos a necesitar recorrer todo su contenido y copiar cada archivo y subdirectorio.

Para eliminar archivos o directorios podemos utilizar la función ‘unlink’ para archivos y ‘rmdir’ para directorios. Si queremos eliminar un directorio con todo su contenido vamos a necesitar recorrer los archivos y subdirectorios y eliminarlos uno por uno.

A continuación se muestran algunos ejemplos de código para copiar y eliminar archivos y directorios en Node.js:

Copia de un archivo:

const fs = require('fs');

fs.copyFile('archivo_origen.txt', 'archivo_destino.txt', (err) => {
  if (err) throw err;
  console.log('El archivo ha sido copiado exitosamente');
});

Copia de un directorio:

const fs = require('fs');

function copiarDirectorio(origen, destino) {
  fs.mkdirSync(destino);
  fs.readdir(origen, (err, archivos) => {
    if (err) throw err;
    archivos.forEach((archivo) => {
      const origenPath = origen   '/'   archivo;
      const destinoPath = destino   '/'   archivo;
      fs.stat(origenPath, (err, stats) => {
        if (err) throw err;
        if (stats.isFile()) {
          fs.copyFile(origenPath, destinoPath, (err) => {
            if (err) throw err;
          });
        } else if (stats.isDirectory()) {
          copiarDirectorio(origenPath, destinoPath);
        }
      });
    });
  });
}

copiarDirectorio('directorio_origen', 'directorio_destino');

Eliminación de un archivo:

const fs = require('fs');

fs.unlink('archivo_a_eliminar.txt', (err) => {
  if (err) throw err;
  console.log('El archivo ha sido eliminado exitosamente');
});

Eliminación de un directorio:

const fs = require('fs');
const path = require('path');

function eliminarDirectorio(dirPath) {
  if (fs.existsSync(dirPath)) {
    fs.readdirSync(dirPath).forEach((archivo) => {
      const archivoPath = path.join(dirPath, archivo);
      if (fs.lstatSync(archivoPath).isDirectory()) {
        eliminarDirectorio(archivoPath);
      } else {
        fs.unlinkSync(archivoPath);
      }
    });
    fs.rmdirSync(dirPath);
    console.log('El directorio ha sido eliminado exitosamente');
  }
}

eliminarDirectorio('directorio_a_eliminar');

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

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