Skip to main content
stat - fs - Node documentation
function stat

Usage in Deno

import { stat } from "node:fs";
stat(
path: PathLike,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Asynchronous stat(2). The callback gets two arguments (err, stats) wherestats is an fs.Stats object.

In case of an error, the err.code will be one of Common System Errors.

stat follows symbolic links. Use lstat to look at the links themselves.

Using fs.stat() to check for the existence of a file before callingfs.open(), fs.readFile(), or fs.writeFile() is not recommended. Instead, user code should open/read/write the file directly and handle the error raised if the file is not available.

To check if a file exists without manipulating it afterwards, access is recommended.

For example, given the following directory structure:

- txtDir
-- file.txt
- app.js

The next program will check for the stats of the given paths:

import { stat } from 'node:fs';

const pathsToCheck = ['./txtDir', './txtDir/file.txt'];

for (let i = 0; i < pathsToCheck.length; i++) {
  stat(pathsToCheck[i], (err, stats) => {
    console.log(stats.isDirectory());
    console.log(stats);
  });
}

The resulting output will resemble:

true
Stats {
  dev: 16777220,
  mode: 16877,
  nlink: 3,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 14214262,
  size: 96,
  blocks: 0,
  atimeMs: 1561174653071.963,
  mtimeMs: 1561174614583.3518,
  ctimeMs: 1561174626623.5366,
  birthtimeMs: 1561174126937.2893,
  atime: 2019-06-22T03:37:33.072Z,
  mtime: 2019-06-22T03:36:54.583Z,
  ctime: 2019-06-22T03:37:06.624Z,
  birthtime: 2019-06-22T03:28:46.937Z
}
false
Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 14214074,
  size: 8,
  blocks: 8,
  atimeMs: 1561174616618.8555,
  mtimeMs: 1561174614584,
  ctimeMs: 1561174614583.8145,
  birthtimeMs: 1561174007710.7478,
  atime: 2019-06-22T03:36:56.619Z,
  mtime: 2019-06-22T03:36:54.584Z,
  ctime: 2019-06-22T03:36:54.584Z,
  birthtime: 2019-06-22T03:26:47.711Z
}

Parameters

path: PathLike
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Return Type

void
stat(
path: PathLike,
options: (StatOptions & { bigint?: false | undefined; }) | undefined,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Parameters

path: PathLike
options: (StatOptions & { bigint?: false | undefined; }) | undefined
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Return Type

void
stat(
path: PathLike,
options: StatOptions & { bigint: true; },
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void
,
): void

Parameters

path: PathLike
options: StatOptions & { bigint: true; }
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void

Return Type

void
stat(
path: PathLike,
options: StatOptions | undefined,
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void
,
): void

Parameters

path: PathLike
options: StatOptions | undefined
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void

Return Type

void