El método fs.copyFile() se utiliza para copiar de forma asíncrona un archivo desde la ruta de origen a la ruta de destino. De forma predeterminada, Node.js sobrescribirá el archivo si ya existe en el destino dado. El parámetro de modo opcional se puede utilizar para modificar el comportamiento de la operación de copia.
Sintaxis:
fs.copyFile( src, dest, mode, callback )
Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- src: es una string, un búfer o una URL que indica el nombre del archivo de origen para copiar.
- destino: es una string, un búfer o una URL que indica el nombre del archivo de destino que crearía la operación de copia.
- modo: Es un número entero que especifica el comportamiento de la operación de copia. Los valores pueden tener constantes predefinidas que tienen sus respectivos comportamientos:
- fs.constants.COPYFILE_EXCL: esta constante especifica que la operación de copia fallaría si el nombre de archivo de destino ya existe.
- fs.constants.COPYFILE_FICLONE: esta constante especifica que la operación de copia intentaría crear un enlace ref de copia en escritura. Se utiliza un mecanismo alternativo si la plataforma no admite la copia en escritura.
- fs.constants.COPYFILE_FICLONE_FORCE: esta constante especifica que la operación de copia intentaría crear un enlace ref de copia en escritura. La operación fallaría si la plataforma no soporta copy-on-write, a diferencia de la anterior.
Estas constantes también se pueden combinar con OR bit a bit para crear una máscara de más de un valor. Es un parámetro opcional. El valor predeterminado del parámetro es 0.
- devolución de llamada: Es una función que sería llamada cuando se ejecuta el método.
- err: es un error que se lanzaría si el método falla.
Los siguientes ejemplos ilustran el método fs.copyFile() en Node.js:
Ejemplo 1: Este ejemplo muestra la operación de copia del archivo “example_file.txt” al archivo “copied_file.txt”.
Javascript
// Node.js program to demonstrate the // fs.copyFile() method // Import the filesystem module const fs = require('fs'); // Get the current filenames // before the function getCurrentFilenames(); console.log("\nFile Contents of example_file:", fs.readFileSync("example_file.txt", "utf8")); // Copying the file to a the same name fs.copyFile("example_file.txt", "copied_file.txt", (err) => { if (err) { console.log("Error Found:", err); } else { // Get the current filenames // after the function getCurrentFilenames(); console.log("\nFile Contents of copied_file:", fs.readFileSync("copied_file.txt", "utf8")); } }); // Function to get current filenames // in directory function getCurrentFilenames() { console.log("\nCurrent filenames:"); fs.readdirSync(__dirname).forEach(file => { console.log(file); }); }
Producción:
Current filenames: example_file.txt index.js File Contents of example_file: This is a test file. Current filenames: copied_file.txt example_file.txt index.js File Contents of copied_file: This is a test file.
Ejemplo 2: este ejemplo muestra el error de la operación de copia cuando el destino ya existe.
Javascript
// Node.js program to demonstrate the // fs.copyFile() method // Import the filesystem module const fs = require('fs'); // Get the current filenames // before the function getCurrentFilenames(); console.log("\nFile Contents of example_file:", fs.readFileSync("example_file.txt", "utf8")); // Copying the file to a the same name fs.copyFile("example_file.txt", "copied_file.txt", fs.constants.COPYFILE_EXCL, (err) => { if (err) { console.log("Error Found:", err); } else { // Get the current filenames // after the function getCurrentFilenames(); console.log("\nFile Contents of copied_file:", fs.readFileSync("copied_file.txt", "utf8")); } }); // Function to get current filenames // in directory function getCurrentFilenames() { console.log("\nCurrent filenames:"); fs.readdirSync(__dirname).forEach(file => { console.log(file); }); }
Producción:
Current filenames: copied_file.txt example_file.txt index.js File Contents of example_file: This is a test file. Error: [Error: EEXIST: file already exists, copyfile 'G:\tutorials\nodejs-fs-copyFile\example_file.txt' -> 'G:\tutorials\nodejs-fs-copyFile\copied_file.txt'] { errno: -4075, code: 'EEXIST', syscall: 'copyfile', path: 'G:\\tutorials\\nodejs-fs-copyFile\\example_file.txt', dest: 'G:\\tutorials\\nodejs-fs-copyFile\\copied_file.txt' }
Referencia: https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_mode_callback
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA