You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS中fs.cpSync()复制目录出现系统错误求助

问题排查与解决

1. 路径转义错误

你的代码里路径使用了未转义的反斜杠\,在JavaScript字符串中\是转义字符,比如\U会被解析为特殊字符,导致实际路径不符合预期,这是常见的低级错误。

解决方法:

  • 使用双反斜杠\\表示路径分隔符:
    fs.cpSync("C:\\Users\\User\\f-sync\\src\\test", "C:\\Users\\User\\Pictures", { recursive: true });
    
  • 或者直接用正斜杠/作为路径分隔符(Node.js支持跨平台识别):
    fs.cpSync("C:/Users/User/f-sync/src/test", "C:/Users/User/Pictures", { recursive: true });
    

2. 缺少递归复制配置

Node.js的fs.cpSync默认不会递归复制目录,即便官方描述提到支持整个目录结构复制,也必须显式指定{ recursive: true }选项,否则源为目录时会直接报错。

3. 目标路径逻辑问题

如果目标目录C:\Users\User\Pictures已存在,默认配置下fs.cpSync会把源目录内部的内容复制到目标目录中;如果需要把源目录本身(包括目录名)复制到目标目录下,要调整目标路径为C:\Users\User\Pictures\test,确保目标是一个新的目录名:

fs.cpSync("C:/Users/User/f-sync/src/test", "C:/Users/User/Pictures/test", { recursive: true });

额外检查点

  • 确认Node.js版本在v16.7.0及以上(fs.cpSync从该版本开始稳定支持目录递归复制)
  • 检查当前进程是否有读取源目录、写入目标目录的权限(比如Windows系统下的用户权限限制)

内容的提问来源于stack exchange,提问作者ObSp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:52:06