fsPromises.copyFile(src, dest[, mode])


  • src <string> | <Buffer> | <URL> 要复制的源文件名

    ¥src <string> | <Buffer> | <URL> source filename to copy

  • dest <string> | <Buffer> | <URL> 复制操作的目标文件名

    ¥dest <string> | <Buffer> | <URL> destination filename of the copy operation

  • mode <integer> 指定复制操作行为的可选修饰符。可以创建一个由两个或多个值的按位或组成的掩码(例如 fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE)默认值:0

    ¥mode <integer> Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g. fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE) Default: 0.

    • fs.constants.COPYFILE_EXCL:如果 dest 已经存在,则复制操作将失败。

      ¥fs.constants.COPYFILE_EXCL: The copy operation will fail if dest already exists.

    • fs.constants.COPYFILE_FICLONE:复制操作将尝试创建写时复制引用链接。如果平台不支持写时复制,则使用后备复制机制。

      ¥fs.constants.COPYFILE_FICLONE: The copy operation will attempt to create a copy-on-write reflink. If the platform does not support copy-on-write, then a fallback copy mechanism is used.

    • fs.constants.COPYFILE_FICLONE_FORCE:复制操作将尝试创建写时复制引用链接。如果平台不支持写时复制,则该操作将失败。

      ¥fs.constants.COPYFILE_FICLONE_FORCE: The copy operation will attempt to create a copy-on-write reflink. If the platform does not support copy-on-write, then the operation will fail.

  • 返回:<Promise> 成功时将使用 undefined 履行。

    ¥Returns: <Promise> Fulfills with undefined upon success.

异步地将 src 复制到 dest。默认情况下,如果 dest 已经存在,则会被覆盖。

¥Asynchronously copies src to dest. By default, dest is overwritten if it already exists.

无法保证复制操作的原子性。如果在打开目标文件进行写入后发生错误,则将尝试删除目标文件。

¥No guarantees are made about the atomicity of the copy operation. If an error occurs after the destination file has been opened for writing, an attempt will be made to remove the destination.

import { copyFile, constants } from 'node:fs/promises';

try {
  await copyFile('source.txt', 'destination.txt');
  console.log('source.txt was copied to destination.txt');
} catch {
  console.error('The file could not be copied');
}

// By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
try {
  await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
  console.log('source.txt was copied to destination.txt');
} catch {
  console.error('The file could not be copied');
}