我在Windows和Windows操作以下代码:
const fs = require("fs/promises")
const {
constants,
existsSync
} = require("fs")
async function copy() {
try {
await fs.writeFile("demo.txt", "Hello World")
await fs.copyFile("demo.txt", "copy.txt", constants.COPYFILE_FICLONE_FORCE)
} finally {
fs.rm("demo.txt")
if (existsSync("copy.txt")) fs.rm("copy.txt")
}
}
copy().catch(console.error)
两种失败的错误信息:
LC:
[Error: ENOTSUP: operation not supported on socket, copyfile demo.txt -> copy.txt ] {
errno: -95,
code: ENOTSUP ,
syscall: copyfile ,
path: demo.txt ,
dest: copy.txt
}
Windows:
Error: ENOSYS: function not implemented, copyfile demo.txt -> copy.txt ] {
errno: -4054,
code: ENOSYS ,
syscall: copyfile ,
path: demo.txt ,
dest: copy.txt
}
官方文件指出:
fs.constants.COPYFILE_FICLONE_FORCE
: 复印件操作将试图制造一个复印件。 如果平台不支持复印件,则该平台将失败。
大多数服务器操作系统应为Windows服务器或LC。
我确信, no子的开发商取得了一种不奏效的特征,因此,我很想知道什么平台是“fs.constants”。 《公约》缔约方会议年度报告 达尔文、社发司或其他一些顾问?
以下是一些参考信息:
node version: v16.14.2
windows version: windows 10
windows file system: NTFS
linux version: 5.10.109-1-MANJARO
linux core version: 5.10
linux file system: ext4