fs.mkdir(path[, options], callback)


异步地创建目录。

🌐 Asynchronously creates a directory.

回调函数会接收一个可能的异常,并且如果 recursivetrue,还会接收第一个创建的目录路径,形式为 (err[, path])。当 recursivetrue 时,如果没有创建任何目录,path 仍然可能是 undefined

🌐 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.

可选的 options 参数可以是一个整数,用于指定 mode(权限和粘滞位),也可以是一个包含 mode 属性和 recursive 属性的对象,recursive 属性用于指示是否应创建父目录。当 path 是已存在的目录时调用 fs.mkdir(),仅在 recursive 为 false 时会导致错误。

🌐 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.

import { mkdir } from 'node:fs';

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

在 Windows 上,即使使用递归,fs.mkdir() 在根目录上也会导致错误:

🌐 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:\']
}); 

有关更多详细信息,请参阅 POSIX mkdir(2) 文档。

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