Open In App

Node.js fs.statSync() Method

Last Updated : 08 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

The fs.statSync() method is used to synchronously return information about the given file path. The fs.Stat object returned has several fields and methods to get more details about the file.

Syntax: 

fs.statSync( path, options )

Parameters: This method accept two parameters as mentioned above and described below: 

  • path: It holds the path of the file 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.

Returns: It returns a Stats object which contains the details of the file path.

Features

  • The method is blocking, meaning it stops the execution of subsequent code until the file stats are retrieved. This can be useful when you need to ensure the file stats are retrieved before proceeding.
  • Returns an fs.Stats object containing various properties that describe the file or directory.
  • Works across different operating systems, including Windows, macOS, and Linux.

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

Example 1: This example demonstrates how to use Node.js’s fs.statSync() method to retrieve and display file and directory information synchronously.

// Node.js program to demonstrate the
// fs.statSync() method

// Import the filesystem module
const fs = require('fs');

// Getting information for a file
statsObj = fs.statSync("test_file.txt");

console.log(statsObj); 
console.log("Path is file:", statsObj.isFile());
console.log("Path is directory:", statsObj.isDirectory());

// Getting information for a directory
statsObj = fs.statSync("test_directory");

console.log(statsObj);
console.log("Path is file:", statsObj.isFile());
console.log("Path is directory:", statsObj.isDirectory());

Output: 

Stats {
dev: 3229478529,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 1970324837039946,
size: 0,
blocks: 0,
atimeMs: 1582306776282,
mtimeMs: 1582482953967,
ctimeMs: 1582482953968.2532,
birthtimeMs: 1582306776282.142,
atime: 2020-02-21T17:39:36.282Z,
mtime: 2020-02-23T18:35:53.967Z,
ctime: 2020-02-23T18:35:53.968Z,
birthtime: 2020-02-21T17:39:36.282Z
}
Path is file: true
Path is directory: false
Stats {
dev: 3229478529,
mode: 16822,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 562949953486669,
size: 0,
blocks: 0,
atimeMs: 1582482965037.8445,
mtimeMs: 1581074249467.7114,
ctimeMs: 1582482964979.8303,
birthtimeMs: 1582306776288.1958,
atime: 2020-02-23T18:36:05.038Z,
mtime: 2020-02-07T11:17:29.468Z,
ctime: 2020-02-23T18:36:04.980Z,
birthtime: 2020-02-21T17:39:36.288Z
}
Path is file: false
Path is directory: true


Example 2: This example demonstrates how to use the Node.js fs.statSync() method to retrieve file statistics and the option to return values as big integers. 

// Node.js program to demonstrate the
// fs.stat() method

// Import the filesystem module
const fs = require('fs');

statsObj = fs.statSync("test_file.txt");
console.log(statsObj);

// Using the bigint option to return
// the values in big integer format
statsObj = fs.statSync("test_file.txt", {bigint: true});
console.log(statsObj);

Output:

Stats {
dev: 3229478529,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 1970324837039946,
size: 0,
blocks: 0,
atimeMs: 1582306776282,
mtimeMs: 1582482953967,
ctimeMs: 1582482953968.2532,
birthtimeMs: 1582306776282.142,
atime: 2020-02-21T17:39:36.282Z,
mtime: 2020-02-23T18:35:53.967Z,
ctime: 2020-02-23T18:35:53.968Z,
birthtime: 2020-02-21T17:39:36.282Z
}
BigIntStats {
dev: 3229478529n,
mode: 33206n,
nlink: 1n,
uid: 0n,
gid: 0n,
rdev: 0n,
blksize: 4096n,
ino: 1970324837039946n,
size: 0n,
blocks: 0n,
atimeMs: 1582306776282n,
mtimeMs: 1582482953967n,
ctimeMs: 1582482953968n,
birthtimeMs: 1582306776282n,
atimeNs: 1582306776282000000n,
mtimeNs: 1582482953967000000n,
ctimeNs: 1582482953968253100n,
birthtimeNs: 1582306776282142200n,
atime: 2020-02-21T17:39:36.282Z,
mtime: 2020-02-23T18:35:53.967Z,
ctime: 2020-02-23T18:35:53.968Z,
birthtime: 2020-02-21T17:39:36.282Z
}

Summary

The fs.statSync() method in Node.js provides detailed file and directory information synchronously. It’s ideal for ensuring file stats are available before continuing but should be used cautiously in performance-sensitive situations.

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



Next Article

Similar Reads

three90RightbarBannerImg