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

如何用Power Automate将SharePoint子文件夹文件复制到指定文件夹

实现SharePoint文件夹新增文件自动同步到目标路径

方法1:Power Automate(无代码实时同步,推荐)

这是最适合普通用户的方案,无需开发能力,能实时触发同步:

  1. 打开Power Automate,创建自动化云流,触发条件选择「当文件创建时(属性仅)」
  2. 配置触发动作:
    • 站点地址选目标SharePoint站点
    • 库名称选「文档」(对应Shared Documents)
    • 文件夹路径填/General/Ops/Mock/,勾选「包括子文件夹」
  3. 添加「获取文件内容」动作,使用触发动作输出的「文件标识符」作为参数
  4. 添加「创建文件」动作:
    • 站点地址选同一个站点
    • 文件夹路径填/General/Ops/Test/Mock_raw/
    • 文件名用触发动作里的「文件名」
    • 文件内容选「获取文件内容」输出的「文件内容」
  5. 可选优化:
    • 如果需要保留原文件元数据(比如创建人、修改时间),添加「更新文件属性」动作,把原文件的对应字段同步到新文件
    • 重名文件处理:在「创建文件」动作的「如果文件已存在」选项中,选择「替换」或「跳过」

方法2:PowerShell脚本(适合定期同步,管理员用)

如果需要定期批量同步,可编写PowerShell脚本并通过Windows任务计划定时执行:

# 连接到SharePoint Online
Connect-SPOService -Url "https://你的租户名.sharepoint.com/sites/你的站点名"

# 定义源和目标文件夹的服务器相对路径
$sourceFolderUrl = "/sites/你的站点名/Shared Documents/General/Ops/Mock/"
$targetFolderUrl = "/sites/你的站点名/Shared Documents/General/Ops/Test/Mock_raw/"

# 获取近24小时内新增的文件(可根据需求调整时间范围)
$newFiles = Get-SPOFile -Folder $sourceFolderUrl -Recursive | Where-Object { $_.TimeCreated -gt (Get-Date).AddHours(-24) }

# 批量复制文件
foreach ($file in $newFiles) {
    Copy-SPOFile -SourceUrl $file.ServerRelativeUrl -TargetUrl $targetFolderUrl -OverwriteIfAlreadyExists
}

说明:执行脚本前需确保已安装SharePoint Online Management Shell,且运行账号有源文件夹读取权限和目标文件夹写入权限。

方法3:SPFx事件接收器(适合定制化开发)

如果需要更复杂的业务逻辑(比如过滤特定类型文件、自定义元数据映射),可通过SPFx开发事件接收器:

  1. 创建SPFx扩展项目,实现ListItemAdded事件处理逻辑
  2. 在事件处理代码中,通过SharePoint REST API获取新增文件的信息,调用CopyTo方法将文件复制到目标路径
  3. 将扩展部署到目标站点,并绑定到源文档库的文件夹

注意事项

  • 权限配置:确保同步工具(流/脚本/扩展)拥有源文件夹的读取权限和目标文件夹的写入权限
  • 避免重复同步:Power Automate可通过触发条件的「文件创建时间」过滤,PowerShell可通过时间范围筛选,SPFx可标记已同步文件的自定义属性
  • 子文件夹覆盖:所有方法都支持遍历源文件夹的子目录,确保新增的子文件都能被同步

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:53:29