Tengo un archivo gif que está almacenado en un directorio de recursos de llamada en mi computadora. Me gustaría crear una cantidad X de duplicados y deberían almacenarse en el mismo directorio y cada uno de ellos debería tener un nombre de archivo diferente.
Ejemplo:
En el directorio de activos, el archivo gif se llama 0.gif. Me gustaría duplicar este archivo gif 10 veces y los duplicados deben llamarse 1.gif, 2.gif, 3.R, etc.
const fs = require("fs") const filename = "index.js".split(".") //filename like 0.gif to gif const times = 10 // number of times to duplicate for(var int = 1; int < times; int++){ const newFilename = `${(parseInt(filename[0]) + init)}.${filename[1]}` //new filename like 0.gif to 1.gif fs.copyFileSync(filename, newfilename) }use el archivo de escritura y el archivo de lectura del módulo fs y un bucle for simple
La opción más simple es usar fs y usar la función copyFile disponible
const fs = require("fs"); const path = require("path"); let copyMultiple = (src, count) => { let initCount = 0; while (initCount < count) { initCount++;// you can put this at bottom too acc to your needs const newFileName = `${initCount}_${initCount}${path.extname(src)}`; console.log(newFileName, "is new file name"); fs.copyFile(src, newFileName, (error) => { // if errors comes if (error) { console.log(error); } }); } }; copyMultiple("1.gif", 3);Otra forma elegante de hacer esto es
const util = require("util"); const fs = require("fs"); const path = require("path"); const copyFilePromise = util.promisify(fs.copyFile); function copyFiles(srcFile, destDir, destFileNames) { return Promise.all( destFileNames.map((file) => { return copyFilePromise(srcFile, path.join(destDir, file)); }) ); } const myDestinationFileNames = ["second.gif", "third.gif"]; const sourceFileName = "1.gif"; copyFiles(sourceFileName, "", myDestinationFileNames) .then(() => { console.log("Copying is Done"); }) .catch((err) => { console.log("Got and Error", error); });El uso de esto también le dará una ventaja para saber cuándo se hace.
Puedes leer los documentos aquí
no estoy seguro de en qué marco se encuentra, pero fs.copyFile() es la forma estándar para node.jshttps://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback