Open In App

Node fs.copyFile() Function

The fs.copyFile() method is used to asynchronously copy a file from the source path to the destination path. By default, Node.js will overwrite the file if it already exists at the given destination. The optional mode parameter can be used to modify the behavior of the copy operation.

Syntax: 



fs.copyFile( src, dest, mode, callback )

Parameters: This method accepts three parameters as mentioned above and described below: 

These constants can also be combined with bitwise OR to create a mask of more than one value. It is an optional parameter. The default value of the parameter is 0.



Below examples illustrate the fs.copyFile() method in Node.js:

Example 1: This example shows the copy operation of the “example_file.txt” file to “copied_file.txt” file.




// 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);
    });
}

Output: 

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.

Example 2: This example shows the failure of the copy operation when the destination already exists.




// 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);
  });
}

Output: 

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'
}

We have a Cheat Sheet on Node fs modules where we covered all the fs methods to check those please go through Node File System Module Complete Reference this article. 


Article Tags :