Node.js fs.stat() Method
The fs.stat() method is used to return information about the given file or directory. It returns an fs.Stat object which has several properties and methods to get details about the file or directory.
Syntax:
fs.stat( path, options, callback )
Parameters:
This method accept three parameters as mentioned above and described below:
- path: It holds the path of the file or directory that has to be checked. It can be a String, Buffer or URL.
- options: It is an object that can be used to specify optional parameters that will affect the output. It has one optional parameter:
- bigint: It is a boolean value which specifies if the numeric values returned in the fs.Stats object are bigint. The default value is false.
- callback: It is the function that would be called when the method is executed.
- err: It is an error that would be thrown if the method
- stats: It is the Stats object that contains the details of the file path.
Stat Object Properties
- stats.isFile(): Returns true if the path is a file.
- stats.isDirectory(): Returns true if the path is a directory.
- stats.size: The size of the file in bytes. This value will be 0 for directories.
- stats.mtime: The last modification time of the file.
- stats.ctime: The last change time of the file’s metadata (e.g., permissions, ownership). It is not the creation time.
- stats.atime: The creation time of the file (when the file was first created on the file system).
Features
- Operates asynchronously, allowing other operations to proceed while waiting for the file system response.
- Provides comprehensive details about file and directory properties.
- Includes error handling for cases where the file or directory does not exist.
Below examples illustrate the fs.stat() method in Node.js
Example 1: This example demonstrates the use of the fs.stat() method to asynchronously retrieve and log metadata for both a file and a directory. It shows how to handle errors and use the Stats object to check if the paths are files or directories.
// Filename - index.js
const fs = require('fs');
// Getting information for a file
fs.stat("example_file.txt", (error, stats) => {
if (error) {
console.log(error);
}
else {
console.log("Stats object for: example_file.txt");
console.log(stats);
// Using methods of the Stats object
console.log("Path is file:", stats.isFile());
console.log("Path is directory:", stats.isDirectory());
}
});
// Getting information for a directory
fs.stat("example_directory.txt", (error, stats) => {
if (error) {
console.log(error);
}
else {
console.log("Stats object for: example_directory.txt");
console.log(stats);
// Using methods of the Stats object
console.log("Path is file:", stats.isFile());
console.log("Path is directory:", stats.isDirectory());
}
});
Output

Node.js fs.stat() Method
Example 2: This example demonstrates the fs.stat() method to asynchronously retrieve file metadata in two formats: default and with bigint option for large integer values. It logs the Stats object for “example_file.txt” in both cases.
// Filename - index.js
// Import the filesystem module
const fs = require('fs');
fs.stat("example_file.txt", (error, stats) => {
console.log(stats);
});
// Using the bigint option to return
// the values in big integer format
fs.stat("example_file.txt", { bigint: true }, (error, stats) => {
console.log(stats);
});
Output

Node.js fs.stat() Method
Summary
The fs.stat() method in Node.js is a powerful tool for retrieving file and directory metadata asynchronously. It helps in managing file operations efficiently by providing detailed information and supporting error handling. By leveraging fs.stat(), developers can ensure that their code handles files and directories correctly, improving robustness and reliability in Node.js applications.