此方法将文件或目录从一个位置复制到另一个位置。目录可以有子目录和文件。
copy(src, dest[, options][, callback])
src - 这是一个字符串参数,它将保存需要复制的文件或目录的源位置。如果位置是一个目录,它将复制目录中的所有内容而不是整个目录。
dest – 这将保存文件/目录将被复制的目标位置。如果 src 是文件,则 dest 不能是目录。
选项-
overwrite – 如果设置为 true,现有文件或目录将被覆盖。默认值设置为 true。
errorOnExist – 如果目标文件/文件夹存在,仅当 overwrite 设置为 false 时才会抛出错误。
preserveTimestamps – 如果为真,最新的修改和访问时间将设置为原始文件的时间,否则将取决于操作系统。
filter – 此选项将过滤复制的文件。如果设置为 true,将包括过滤的文件。
callback - 如果发生任何错误,此函数将提供回调。
在继续之前检查 fs-extra 是否已安装,如果没有,请安装 fs-exra。
您可以使用以下命令来检查是否安装了 fs-extra。
npm ls fs-extra
创建一个copyExample .js 并将以下代码片段复制粘贴到该文件中。
现在,运行以下命令来运行代码片段。
node copyExample.js
const fs = require('fs-extra') // 使用回调复制文件: fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { if (err) return console.error(err) console.log('success with callback!') }) // 如果发生任何错误,则返回回调 // 将目录从 src 复制到 dest fs.copy('/tmp/mydir', '/tmp/mynewdir', err => { if (err) return console.error(err) console.log('Directories copied successfully!') }) // 使用 Promise 复制文件: fs.copy('/tmp/myfile', '/tmp/mynewfile') .then(() => { console.log('success with promise!') }) .catch(err => { console.error(err) }) // 使用 async/await 复制文件: async function copyExample () { try { await fs.copy('/tmp/myfile', '/tmp/mynewfile') console.log('success with await!') } catch (err) { console.error(err) } } copyExample()输出结果
C:\Users\nhooo\> node copyExample.js success with callback! success with promise! success with await! Directories copied successfully!