如何在Power Automate云版中无需ID删除指定文件名的SharePoint Online文件?
问题背景
使用Power Automate云版+SharePoint Online时,需要删除已知文件名但未知ID、且非触发流的文件,直接在「删除文件」操作的「文件标识符」字段填入文件完整路径后执行失败,运行详情显示正常但实际未删除文件。
可行解决方法
方法1:先通过路径获取文件标识符再删除
适合你确认文件路径绝对准确的场景:
- 添加SharePoint的「获取文件元数据(路径)」操作
- 选择目标SharePoint站点地址
- 在「文件路径」中填入你确认正确的完整路径(例如
/Shared Documents/部门文件夹/待删除文件.xlsx)
- 紧接着添加SharePoint的「删除文件」操作
- 站点地址保持与上一步一致
- 「文件标识符」选择上一步「获取文件元数据(路径)」输出里的
Identifier动态内容(这是SharePoint认可的唯一文件标识)
方法2:利用相同元数据定位文件后删除(更灵活)
既然你可以借助触发文件的相同元数据,推荐用这种方法精准定位目标文件:
- 添加SharePoint的「查找文件」操作
- 选择目标站点地址
- 在「筛选查询」中组合元数据+文件名条件,比如触发文件和待删文件有相同的
合同编号元数据,就写:
(注:合同编号 eq '@{triggerBody()?['合同编号']}' and FileLeafRef eq '待删除文件名.pdf'FileLeafRef是SharePoint系统内置的文件名存储字段)
- 添加「应用到每一个」循环操作,选择「查找文件」输出的
值(因为查找结果是数组格式)- 在循环内部添加SharePoint的「删除文件」操作,「文件标识符」选择当前循环项的
Identifier动态内容
- 在循环内部添加SharePoint的「删除文件」操作,「文件标识符」选择当前循环项的
为什么直接填路径会失败?
Power Automate的「删除文件」操作要求「文件标识符」必须是SharePoint生成的内部唯一标识符(格式类似Shared Documents/xxx.docx|xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),直接填入普通的文件路径字符串无法被系统识别匹配,因此会出现运行详情显示正常但实际删除失败的情况。
内容的提问来源于stack exchange,提问作者tpthatsme
相关产品推荐
相关产品推荐

