如何在SharePoint Online中自动删除2022年及更早创建的文件
前置准备
- 确保你的Power Automate账户有权限访问目标SharePoint站点及文档库,且具备文件删除权限
- 提前确认目标文档库的服务器相对路径:进入文档库根目录,地址栏中
sites/之后到文档库名称的部分,比如/sites/YourSiteName/YourDocLibraryName
流构建步骤
创建新流
选择「手动触发流」(测试阶段用,后续可改为「定时触发」比如每周执行),可添加一个手动触发输入(可选,方便测试时确认)初始化文件夹路径数组
添加「初始化变量」动作:- 变量名称:
FolderPaths - 类型:数组
- 初始值:
['/sites/你的站点名/你的文档库名'](替换为实际的服务器相对路径)
- 变量名称:
遍历所有文件夹(Do Until循环)
添加「Do until」循环,设置终止条件为:length(variables('FolderPaths')) equals 0循环内依次添加以下动作:
3.1 获取当前待处理文件夹路径
添加「初始化变量」动作:- 变量名称:
CurrentFolder - 类型:字符串
- 值:
first(variables('FolderPaths'))
3.2 从数组移除已处理的文件夹路径
添加「设置变量」动作,目标变量选FolderPaths,值为:remove(variables('FolderPaths'), variables('CurrentFolder'))3.3 列出当前文件夹下的所有项目
添加「列出文件夹中的文件」动作:- 站点地址:选择目标SharePoint站点
- 文件夹路径:
variables('CurrentFolder') - 取消勾选「包括嵌套项」(我们将手动遍历子文件夹)
3.4 处理每个项目(应用到每一个循环)
对「列出文件夹中的文件」的输出添加「应用到每一个」循环,循环内添加以下逻辑:3.4.1 判断项目类型(文件/文件夹)
添加「条件」动作,设置判断表达式:
items('Apply_to_each')?['FileSystemObjectType'] equals 1(
FileSystemObjectType=1代表文件夹,=0代表文件)如果是文件夹:
添加「追加到数组变量」动作,目标变量选FolderPaths,值为:items('Apply_to_each')?['ServerRelativeUrl'](将子文件夹路径加入待遍历数组)
如果是文件:
添加嵌套「条件」动作,判断文件创建时间是否在2022年及之前:items('Apply_to_each')?['Created'] <= '2022-12-31T23:59:59Z'- 条件满足时:添加「删除文件」动作,站点地址选目标站点,文件标识符填:
items('Apply_to_each')?['Identifier']
- 条件满足时:添加「删除文件」动作,站点地址选目标站点,文件标识符填:
- 变量名称:
关键注意事项
- 测试阶段替代删除动作:正式执行前,把「删除文件」换成「撰写内容」或「发送电子邮件」动作,输出符合条件的文件信息,确认筛选逻辑正确后再替换为删除
- 并发限制调整:若文档库文件数量极大,可在「应用到每一个」循环的设置中调整并发数(默认20),避免触发平台限制
- 权限验证:确保流使用的连接账户拥有文档库的完全控制或编辑权限,否则会出现删除失败
- 定时触发配置:如果需要定期清理,可将触发方式改为「recurrence 定时触发」,设置执行频率(如每月一次)
内容的提问来源于stack exchange,提问作者Suprateem Bose
相关产品推荐
相关产品推荐

