Related Articles

Related Articles

Node.js | fs.access() Method
  • Last Updated : 29 Apr, 2020

The fs.access() method is used to test the permissions of a given file or directory. The permissions to be checked can be specified as a parameter using file access constants. It is also possible to check multiple file permissions by using the bitwise OR operator to create a mask with more than one file constant.

Note: It is not recommended to use the fs.access() method to check for the accessiblity of a file before calling fs.open(), fs.readFile() or fs.writeFile(), because it introduces a race condition since the file state may be changed by other processes after the test.

Syntax:

fs.access( path, mode, callback )

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

  • path: It is a String, Buffer or URL that denotes the path of the file or directory for which the permission has to be tested.
  • mode: It is an integer value that denotes the permission to be tested for. The logical OR operator can be used to seperate multiple permission. It can have the values fs.constants.F_OK, fs.constants.R_OK, fs.constants.W_OK and fs.constants.X_OK. It is an optional parameter. The default value is fs.constants.F_OK.
  • callback: It is a function that would be called when the method is executed.
    • err: It is an error that would be thrown if the method fails.

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



Example 1: This example shows the testing of the read and write permission of a file.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Node.js program to demonstrate the
// fs.access() method
  
// Import the filesystem module
const fs = require('fs');
  
// Allowing only read permission
console.log("Giving only read permission to the user");
fs.chmodSync("example_file.txt", fs.constants.S_IRUSR);
  
// Test the read permission
fs.access('example_file.txt', fs.constants.R_OK, (err) => {
  console.log('\n> Checking Permission for reading the file');
  if (err)
    console.error('No Read access');
  else
    console.log('File can be read');
});
  
// Test both the read and write permissions
fs.access('example_file.txt', fs.constants.R_OK 
                  | fs.constants.W_OK, (err) => {
  console.log('\n> Checking Permission for reading"
                          + " and writing to file');
  if (err)
    console.error('No Read and Write access');
  else
    console.log('File can be read and written');
});

chevron_right


Output:

Giving only read permission to the user

> Checking Permission for reading the file
File can be read

> Checking Permission for reading and writing to file
No Read and Write access

Example 2: This example shows the testing of a file if it exists.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Node.js program to demonstrate the
// fs.access() method
  
// Import the filesystem module
const fs = require('fs');
  
// Test the if the file exists
fs.access('example_file.txt', fs.constants.F_OK, (err) => {
  console.log('\n> Checking if the file exists');
  
  if (err) {
    console.error('File does not exist');
  
    // Create the file
    console.log('\nCreating the file');
    fs.writeFileSync("example_file2.txt", "Test File");
  
    // Test the if the file exists again
    fs.access('example_file2.txt', fs.constants.F_OK, (err) => {
      console.log('\n> Checking if the file exists');
      if (err)
        console.error('File does not exist');
      else {
        console.log('File does exist');
      }
    });
  }
  else {
    console.log('File does exist');    
  }
});

chevron_right


Output:

> Checking if the file exists
File does not exist

Creating the file

> Checking if the file exists
File does exist

Reference: https://nodejs.org/api/fs.html#fs_fs_access_path_mode_callback




My Personal Notes arrow_drop_up
Recommended Articles
Page :