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 (for instance, if it was previously created).】
可选的 options 参数可以是一个整数,用于指定 mode(权限和粘滞位),或者是一个具有 mode 属性和 recursive 属性的对象,用于指示是否应该创建父目录。当 path 是已存在的目录时调用 fs.mkdir() 只有在 recursive 为 false 时才会导致错误。如果 recursive 为 false 并且目录已存在,则会出现 EEXIST 错误。
【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;
}); 在 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.】