Open In App

Node.js fs.opendir() Method

The fs.opendir() method is used to asynchronously open a directory in the file system. It creates an fs.Dir object that is used to represent the directory. This object contains various methods that can be used to accessing the directory.

Syntax:



fs.opendir( path[, options], callback )

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

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



Example 1:




// Node.js program to demonstrate the
// fs.opendir() method
  
// Import the filesystem module
const fs = require('fs');
  
// Open the directory
console.log("Opening the directory");
fs.opendir(
    
  // Path of the directory
  "example_dir",
  
  // Options for modifying the operation
  { encoding: "utf8", bufferSize: 64 },
  
  // Callback with the error and returned
  // directory
  (err, dir) => {
    if (err) console.log("Error:", err);
    else {
      // Print the pathname of the directory
      console.log("Path of the directory:", dir.path);
  
      // Close the directory
      console.log("Closing the directory");
      dir.closeSync();
    }
  }
);

Output:

Opening the directory
Path of the directory: example_dir
Closing the directory

Example 2:




// Node.js program to demonstrate the
// fs.opendir() method
  
// Import the filesystem module
const fs = require('fs');
  
// Function to get current filenames
// in directory
filenames = fs.readdirSync("example_dir");
  
console.log("\nCurrent filenames in directory:");
filenames.forEach((file) => {
  console.log(file);
});
  
// Open the directory
fs.opendir("example_dir", (err, dir) => {
  if (err) console.log("Error:", err);
  else {
    // Print the pathname of the directory
    console.log("\nPath of the directory:", dir.path);
  
    // Read the files in the directory
    // as fs.Dirent objects
    console.log("First Dirent:", dir.readSync());
    console.log("Next Dirent:", dir.readSync());
    console.log("Next Dirent:", dir.readSync());
  }
});

Output:

Current filenames in directory:
file_a.txt
file_b.txt

Path of the directory: example_dir
First Dirent: Dirent { name: 'file_a.txt', [Symbol(type)]: 1 }
Next Dirent: Dirent { name: 'file_b.txt', [Symbol(type)]: 1 }
Next Dirent: null

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


Article Tags :