fs.mkdtemp(prefix[, options], callback)
prefix<string> | <Buffer> | <URL>options<string> | <Object>encoding<string> 默认值:'utf8'
callback<Function>
创建唯一的临时目录。
【Creates a unique temporary directory.】
生成六个随机字符,附加在必需的 prefix 后面以创建唯一的临时目录。由于平台差异,避免在 prefix 中使用尾随的 X 字符。一些平台,特别是 BSD 系统,可能会生成超过六个随机字符,并将 prefix 中尾随的 X 字符替换为随机字符。
【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.】
可选的 options 参数可以是指定编码的字符串,或者是一个具有 encoding 属性的对象,用于指定要使用的字符编码。
【The optional options argument can be a string specifying an encoding, or an
object with an encoding property specifying the character encoding to use.】
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
}); fs.mkdtemp() 方法会将六个随机选择的字符直接附加到 prefix 字符串后。例如,给定一个目录 /tmp,如果目的是在 /tmp 内创建一个临时目录,则 prefix 必须以平台特定的路径分隔符(require('node:path').sep)结尾。
【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
(require('node:path').sep).】
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.
});