Node file stats

By

Learn how to inspect files in Node.js with stat(), including file type, size, and modification time, and when to use lstat() for symbolic links.

~~~

Every file comes with details that we can inspect using Node.

Use the stat() method provided by the fs module. Pass it a path and a callback:

const fs = require('node:fs')

fs.stat('/Users/flavio/test.txt', (error, stats) => {
  if (error) {
    console.error(error)
    return
  }

  console.log(stats.size)
})

The callback receives an fs.Stats object.

Here are some of the most useful properties and methods:

Example:

const fs = require('node:fs')

fs.stat('/Users/flavio/test.txt', (error, stats) => {
  if (error) {
    console.error(error)
    return
  }

  console.log(stats.isFile())
  console.log(stats.isDirectory())
  console.log(stats.size)
})

stat() follows symbolic links. Use lstat() instead when you need to check the link itself with stats.isSymbolicLink().

Node also provides statSync(), which blocks until the file details are ready:

const fs = require('node:fs')

try {
  const stats = fs.statSync('/Users/flavio/test.txt')
  console.log(stats.size)
} catch (error) {
  console.error(error)
}

Use the asynchronous version in server code when you do not want file access to block other work.

Tagged: Node.js ยท All topics
~~~

Related posts about node: