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');
Deja una respuesta