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