Como renombrar múltiples archivos usando Node
20345 단어 spanishwebdevjavascriptnode
Este artículo fue originalmente escrito en https://matiashernandez.dev
Nodejs는 기록 보관소에 대한 액세스 권한을 부여하고 작업 기록을 보관소에 보관할 수 있도록 합니다. o moverlos de un lugar a otro.
¿Node.js에 대한 질문이 현실화되는 이유는 무엇입니까?
Cambiar el nombre de un archivo es escencialmente:
Node.js는 모듈로 que contiene todo lo que necesitas para trabajar con archivos:
fs
.Dentro de este modulos tenemos opciones.
Usar는 para realizar la copyia를 스트리밍합니다.
Si estás trabajando con archivos de gran tamaño, una buena opción es utilizar streams para manipularlos.
De forma general un stream es una secuencia de datos disponible durante el tiempo. Esto permite leer y procesar los datos en pequeños trozos.
A la hora de trabajar con streams también hay opciones, revisemos algunas
Leer y escribir el contenido del archivo
const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
const readStream = fs.createReadStream(original)
const writeStream = fs.createWriteStream('./otroFolder/ArchivoCopia,.txt')
readStream.on('data', (chunk) => {
writeStream.write(chunk)
})
function eliminarArchivo(archivo) {
fs.unlink(archivo, (err) => {
if (err) {
console.error(err)
return
}
console.log('Archivo original eliminado')
})
}
readStream.on('close', () => {
eliminarArchivo(original)
})
En este ejemplo se crea un stream de lectura del archivo original y otro de escritura para el nuevo nombre.
El stream de lectura lee el archivo por trozos y cada vez que esto se ejecuta
.on('data',() => {})
el stream de escritura escribe ese contenido.Una vez que se terminó de leer
.on('close')
se eliminar el archivo original usandofs.unlink
.Una opción más concisa es usar el método
pipe
const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
const readStream = fs.createReadStream(original)
const writeStream = fs.createWriteStream('./otroFolder/ArchivoCopia.txt')
function eliminarArchivo(archivo) {
fs.unlink(archivo, (err) => {
if (err) {
console.error(err)
return
}
console.log('Archivo original eliminado')
})
}
// Lectura y copia en una sola linea
readStream.pipe(writeStream)
writeStream.on('finish', () => {
console.log('Copy successfully done)
eliminarArchivo()
})
Leer y escribir archivo para copiar/renombrar
Siguiendo el patrón de "Leer, Copiar, Eliminar"는 Node.js에서 사용되는 방법 중 하나입니다.
const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
function eliminarArchivo(archivo) {
fs.unlink(archivo, (err) => {
if (err) {
console.error(err)
return
}
console.log('Archivo original eliminado')
})
}
function leerArchivo(callback) {
// Leer el archivo original
fs.readFile(original, 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
callback(data)
});
}
function escribirArchivo(data){
fs.writeFile('./otroFolder/NuevoArchivo.txt', data, function (err) {
if (err) return console.log(err);
console.log(Archivo Escrito);
eliminarArchivo(original)
});
}
leerArchivo((data) => escribirArchivo(data) )
Pero este método es algo engorroso no?
Copiar el archivo para renombrar
Nodejs는 복사 기록 보관소
fs.copyFile
와 반대 서명fs.copyFileSync
에 대한 방법이 없습니다.const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
function eliminarArchivo(archivo) {
fs.unlink(archivo, (err) => {
if (err) {
console.error(err)
return
}
console.log('Archivo original eliminado')
})
}
fs.copyFile(original, "./otroFolder/NuevoArchivo.txt", (err) => {
if (err) {
console.log("Oops! An Error Occured:", err);
}
else {
eliminarArchivo(original)
console.log("Archivo copiado")
}
});
Esta forma es más concisa pero al leer el código, si bien, se entiende que se ha copiado y eliminado el archivo original (ergo, se renombró) la intención del código no es clara. Para esto nodejs of rece otro método
Renombrar el archivo con rename
Una forma más directa de renombrar archivos es utilizar
fs.renameFile
또는 su contraparte sincrona fs.renameFileSync
Estos método realizan la misma operation: "Leer, escribir, eliminar"pero esconden esta implementación of reciendo una abstracción más clara de la intención del método: Renombrar.
const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
const nuevo = './otroFolder/NuevoArchivo.txt'
fs.rename(original, nuevo, () => { console.log('Archivo renombrado') })
Este método es evidenceemente más consiso.
También se puede hacer de forma sincrona o utilizando promesas
// Sincrona
const fs = require('fs')
const original = './directorioOriginal/ArchivoOriginal.txt'
const nuevo = './otroFolder/NuevoArchivo.txt'
fs.renameSync(original, nuevo)
console.log('Archivo renombrado')
// Usando promesas
const { promises: Fs } = require('fs')
await Fs.rename(original, nuevo)
console.log('Archivo renombrado')
✉️ Únete a Micro-bytes 🐦 Sígueme en ❤️ Apoya mi trabajo
Reference
이 문제에 관하여(Como renombrar múltiples archivos usando Node), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matiasfha/como-renombrar-multiples-archivos-usando-node-5cda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)