NodeJS 中 fs-extra 的同步复制


同步复制简介

此方法以同步方式将文件或目录从一个位置复制到另一个位置。该目录可以包含子目录和文件。

语法

copySync(src, dest[, options])

参数

  • src – 这是一个字符串参数,用于保存需要复制的文件或目录的源位置。如果位置是目录,则会复制目录中的所有内容,而不是整个目录。

  • dest – 用于保存文件/目录将要复制到的目标位置。如果 src 是文件,则 dest 不能是目录。

选项

  • overwrite – 如果设置为 true,则会覆盖现有的文件或目录。默认值为 true。

  • errorOnExist – 仅当 overwrite 设置为 false 时,如果目标文件/文件夹存在,则会抛出错误。

  • preserveTimestamps – 如果为 true,则最新修改和访问时间将设置为原始文件的时间,否则将取决于操作系统。

  • filter – 此选项将过滤复制的文件。如果设置为 true,则包含过滤的文件。

由于它是同步复制,因此它没有回调函数。

示例 1

  • 在继续之前,请检查是否已安装 fs-extra;如果未安装,请安装 fs-extra。

  • 您可以使用以下命令检查是否已安装 fs-extra。

npm ls fs-extra
  • 创建一个 syncCopyExample.js 文件,并将以下代码片段复制粘贴到该文件中。

  • 现在,运行以下命令来运行以下代码片段。

node syncCopyExample.js

代码片段

const fs = require('fs-extra')

// copying file in sync process
fs.copySync('/tmp/myfile', '/tmp/mynewfile')
console.log("File copied in Sync")

// Copies directory from src to dest
fs.copySync('/tmp/mydir', '/tmp/mynewdir')
console.log("Directory copied in Sync")

输出

C:\Users\tutorialsPoint\> node syncCopyExample.js
File copied in Sync
Directory copied in Sync

示例 2(使用 filter 函数)

const fs = require('fs-extra')

// Copying files with .txt or .avi as extension
fs.copySync(
   '/tmp/newFile.txt', '/tmp/myfile2.txt',  /.*(.txt|.avi)$/,
   (err) => { console.log ('An error occured while copying')})
console.log("Successfully copied !")

C:\Users\tutorialsPoint\> node syncCopyExample.js
Successfully copied!

更新于: 2021年4月28日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始
广告