在 Node.js 中递归复制文件夹

2024-01-17

有没有一种更简单的方法来复制文件夹及其所有内容,而无需手动执行一系列操作fs.readir, fs.readfile, fs.writefile递归地?

我只是想知道我是否缺少一个理想情况下可以像这样工作的函数:

fs.copy("/path/to/source/folder", "/path/to/destination/folder");

关于这个历史性的问题。注意fs.cp and fs.cpSync可以递归复制文件夹,并且在 Node v16+ 中可用


看起来像ncp https://www.npmjs.com/package/ncp and wrench https://www.npmjs.com/package/wrench两者都不再维护。也许最好的选择是使用fs-extra https://www.npmjs.com/package/fs-extra

Wrench 开发者引导用户使用fs-extra因为他已经废弃了他的图书馆

copySync & moveSync两者都会复制和移动文件夹,即使它们有文件或子文件夹,您也可以使用它轻松移动或复制文件

const fse = require('fs-extra');

const srcDir = `path/to/file`;
const destDir = `path/to/destination/directory`;
                                 
// To copy a folder or file, select overwrite accordingly
try {
  fse.copySync(srcDir, destDir, { overwrite: true|false })
  console.log('success!')
} catch (err) {
  console.error(err)
}

OR

// To Move a folder or file, select overwrite accordingly
try {
  fs.moveSync(srcDir, destDir, { overwrite: true|false })
  console.log('success!')
} catch (err) {
  console.error(err)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Node.js 中递归复制文件夹 的相关文章

随机推荐

  • ASP.NET Core Identity - “手动”创建用户并提供密码哈希 - 如何正确生成哈希?

    我必须手动创建用户 var user new User Name Joe Email test com PasswordHash gdfgdfgre2132143xcxzvb context Users Add user 但问题是 当我尝试
  • 在 Python 中使用 Bokeh 在绘图之间链接 Span 或 Cursor

    我想要一个链接到 Bokeh 中的图的光标 因此 如果我将光标移动到一个图上 则相邻图上会显示一条等效线 我还没弄清楚如何使用内置的光标工具来做到这一点 所以我当前的解决方案是在共享源的每个图上画一条线 然后 当我将鼠标悬停在任一图上时 源
  • couchdb 2.0安装错误

    我正在尝试按照以下指南在 ubuntu 服务器 14 04 上安装 couchdb2 0 http docs couchdb org en 2 0 0 install unix html http docs couchdb org en 2
  • 如何调整 gridPanel 列?

    我有使用 ExtJs 3 4 的应用程序 我有这样的结构 westPanel TabPanel var westPanel new Ext TabPanel id west xtype tabpanel layout fit activeT
  • Node.js - Performance.now 不是一个函数

    我有一个 Node js 应用程序 当我跑步时node v从命令行 我看到以下内容 v10 3 0 这是相关的 因为我有兴趣使用性能挂钩 https nodejs org api perf hooks html 我已经创建了我能想到的最基本
  • 如何从 MSBuild 中的 ItemGroup 构建 PropertyGroup 条目?

    我对 MSBuild 非常陌生 无法弄清楚如何从条件部分构造 PropertyGroup 条目 这是我所拥有的 但不起作用
  • 如何使用 Javascript 在 TextArea 中的光标位置附加文本

    我有一个 TextArea textBox 和一个按钮 TextArea 有一些文本 例如这是一只猫 现在我的要求是 如果有人在 TextArea 中设置光标位置并在文本框中输入文本并单击按钮 则文本应该附加在光标位置而不是最后 例如 Te
  • 如何触发软键盘?

    如何触发软件键盘并向其按键添加侦听器 要显示软键盘 您可以尝试 InputMethodManager showSoftInput 至于添加监听器 你能做的最好的就是添加一个TextChangedListener to an EditText
  • python 中异常的意外执行

    我是 python 新手 我想出了这个问题 我为计算器编写了一个简单的程序 在add函数中 我使用了try except 当遇到这一行时 如果decide no 或decide n 它会显示打印行 return You has exited
  • swift 3.0 如何在 Swift 3 中访问“Any”中的“AnyHashable”类型?

    我正在使用 sqlite 文件从authorId 获取diaryEntriesTeacher 当我打印变量authorId is nil 时 它会生成以下authorId 对象 代码 func applySelectQuery checkD
  • 返回迭代器的特征

    Setup 假设我有以下特征Stack它简单地定义了一个pop and push手术 trait Stack
  • 如何在正则表达式模式VBA中使用三个(负向前瞻)?

    我正在使用这个正则表达式模式 b Mm od er b hH b b 单词边界断言后面的内容前面没有其他单词字符 Mm od 大写 小写m其次是od er 断言位置的负前瞻不跟随er 除换行符之外的任何 0 贪婪 字符 b hH b 匹配大
  • MySQL 条件插入

    我很难形成条件插入 我有 x table 其中包含列 实例 用户 项目 其中实例 ID 是唯一的 仅当用户还没有给定的项目时 我才想插入新行 例如尝试插入实例 919191用户 123项目 456 Insert into x table i
  • java JVM字节码表示法,注释语法。调用动态

    问 14行是什么意思 使用 javap v c 反汇编以下代码 public class test static int i 2 public static void main String args test x new test Sys
  • NSUserDefaults removeObjectForKey 与 setObject:nil

    下面两行等价吗 1 NSUserDefaults standardUserDefaults removeObjectForKey example key 2 NSUserDefaults standardUserDefaults setOb
  • 如何附加到 Android MediaRecorder 输出文件

    我想知道是否有一种方法可以告诉 MediaRecorder 附加到现有的音频文件 而不是从头开始 换句话说 我想使用现有文件调用 setOutputFile 并将新音频附加到该文件而不是删除它 Android MediaRecorder 不
  • 如何使WPF资源在触发器运行时重新计算?

    简而言之 我有一个Style 它用TemplateBinding使其参数化 而不是一遍又一遍地重复自己 但是 当使用该样式的触发器并且在该触发器的 setter 中使用资源时 它就不会显示 甚至没有显示默认值 这是一个重现此问题的小程序 测
  • twitter-bootstrap-rails gem 工作流程

    如何在 Rails 3 2 1 应用程序中使用 twitter bootstrap rails gem 工作流程是怎样的 我这样做之后 rails g bootstrap layout LAYOUT NAME xed or uid opti
  • 如何使用 qmake 和 macdeployqt 缩小应用程序

    如何使用 qmake 和 macdeployqt 缩小应用程序 我已在项目 pro 文件中设置 QT core gui 并在生成的应用程序上运行 qmake 和 macdeployqt 问题是该程序捆绑了 QtNetwork QtScrip
  • 在 Node.js 中递归复制文件夹

    有没有一种更简单的方法来复制文件夹及其所有内容 而无需手动执行一系列操作fs readir fs readfile fs writefile递归地 我只是想知道我是否缺少一个理想情况下可以像这样工作的函数 fs copy path to s