fs.mkdir(path[, options], callback)
path<string> | <Buffer> | <URL>options<Object> | <integer>callback<Function>err<Error>path<string> | <undefined> 仅在使用recursive设置为true创建目录时才会出现。
异步地创建目录。
🌐 Asynchronously creates a directory.
回调函数会接收一个可能的异常,并且如果 recursive 为 true,还会接收第一个创建的目录路径,形式为 (err[, path])。当 recursive 为 true 时,如果没有创建任何目录,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.