mkdir

external fun mkdir(path: PathLike, options: MkdirRecursiveOptions, callback: (err: ErrnoException?, path: String?) -> Unit)(source)

Asynchronously creates a directory.

The callback is given a possible exception and, if recursive is true, the first directory path created, (err[, path]).path can still be undefined when recursive is true, if no directory was created (for instance, if it was previously created).

The optional options argument can be an integer specifying mode (permission and sticky bits), or an object with a mode property and a recursive property indicating whether parent directories should be created. Calling fs.mkdir() when path is a directory that exists results in an error only when recursive is false. If recursive is false and the directory exists, an EEXIST error occurs.

import { mkdir } from 'node:fs';

// Create ./tmp/a/apple, regardless of whether ./tmp and ./tmp/a exist.
mkdir('./tmp/a/apple', { recursive: true }, (err) => {
if (err) throw err;
});

On Windows, using fs.mkdir() on the root directory even with recursion will result in an error:

import { mkdir } from 'node:fs';

mkdir('/', { recursive: true }, (err) => {
// => [Error: EPERM: operation not permitted, mkdir 'C:\']
});

See the POSIX mkdir(2) documentation for more details.

Since

v0.1.8


external fun mkdir(path: PathLike, options: Mode?, callback: NoParamCallback)(source)
external fun mkdir(path: PathLike, options: MkdirOptions?, callback: NoParamCallback)(source)
external fun mkdir(path: PathLike, options: Mode?, callback: (err: ErrnoException?, path: String?) -> Unit)(source)
external fun mkdir(path: PathLike, options: MakeDirectoryOptions?, callback: (err: ErrnoException?, path: String?) -> Unit)(source)
suspend external fun mkdir(path: PathLike, options: Mode? = definedExternally): Void(source)
suspend external fun mkdir(path: PathLike, options: MkdirAsyncOptions? = definedExternally): Void(source)
suspend external fun mkdir(path: PathLike, options: MakeDirectoryOptions? = definedExternally): String?(source)

Asynchronous mkdir(2) - create a directory.

Parameters

path

A path to a file. If a URL is provided, it must use the file: protocol.

options

Either the file mode, or an object optionally specifying the file mode and whether parent folders should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to 0o777.


external fun mkdir(path: PathLike, callback: NoParamCallback)(source)

Asynchronous mkdir(2) - create a directory with a mode of 0o777.

Parameters

path

A path to a file. If a URL is provided, it must use the file: protocol.


suspend external fun mkdir(path: PathLike, options: MkdirRecursiveAsyncOptions): String?(source)
suspend external fun mkdir(path: PathLike): Void(source)