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

Usage in Deno

import { mkdtemp } from "node:fs";
mkdtemp(
prefix: string,
options: EncodingOption,
callback: (
err: ErrnoException | null,
folder: string,
) => void
,
): void

Creates a unique temporary directory.

Generates six random characters to be appended behind a required prefix to create a unique temporary directory. Due to platform inconsistencies, avoid trailing X characters in prefix. Some platforms, notably the BSDs, can return more than six random characters, and replace trailing X characters in prefix with random characters.

The created directory path is passed as a string to the callback's second parameter.

The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use.

import { mkdtemp } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';

mkdtemp(join(tmpdir(), 'foo-'), (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Prints: /tmp/foo-itXde2 or C:\Users\...\AppData\Local\Temp\foo-itXde2
});

The fs.mkdtemp() method will append the six randomly selected characters directly to the prefix string. For instance, given a directory /tmp, if the intention is to create a temporary directory within/tmp, the prefixmust end with a trailing platform-specific path separator (import { sep } from 'node:path').

import { tmpdir } from 'node:os';
import { mkdtemp } from 'node:fs';

// The parent directory for the new temporary directory
const tmpDir = tmpdir();

// This method is *INCORRECT*:
mkdtemp(tmpDir, (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Will print something similar to `/tmpabc123`.
  // A new temporary directory is created at the file system root
  // rather than *within* the /tmp directory.
});

// This method is *CORRECT*:
import { sep } from 'node:path';
mkdtemp(`${tmpDir}${sep}`, (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Will print something similar to `/tmp/abc123`.
  // A new temporary directory is created within
  // the /tmp directory.
});

Parameters

prefix: string
options: EncodingOption
callback: (
err: ErrnoException | null,
folder: string,
) => void

Return Type

void
mkdtemp(
prefix: string,
options: "buffer" | { encoding: "buffer"; },
callback: (
err: ErrnoException | null,
folder: Buffer,
) => void
,
): void

Asynchronously creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.

Parameters

prefix: string
options: "buffer" | { encoding: "buffer"; }

The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, 'utf8' is used.

callback: (
err: ErrnoException | null,
folder: Buffer,
) => void

Return Type

void
mkdtemp(
prefix: string,
options: EncodingOption,
callback: (
err: ErrnoException | null,
folder: string | Buffer,
) => void
,
): void

Asynchronously creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.

Parameters

prefix: string
options: EncodingOption

The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, 'utf8' is used.

callback: (
err: ErrnoException | null,
folder: string | Buffer,
) => void

Return Type

void
mkdtemp(
prefix: string,
callback: (
err: ErrnoException | null,
folder: string,
) => void
,
): void

Asynchronously creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.

Parameters

prefix: string
callback: (
err: ErrnoException | null,
folder: string,
) => void

Return Type

void