Skip to main content
mkdtemp - node__fs.d.ts - Node documentation
function mkdtemp

Usage in Deno

```typescript import { mkdtemp } from "node:node__fs.d.ts"; ```
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. ```js 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 `prefix`must end with a trailing platform-specific path separator (`import { sep } from 'node:path'`). ```js 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