共享云端硬盘中Google Apps Script删除临时文件报错求助
解决共享云端硬盘中Google Apps Script删除临时文件报错问题
问题原因
共享云端硬盘的文件所有权归团队而非个人,DriveApp.Folder.removeFile()方法的逻辑不适用于共享盘场景,因此执行时会抛出Exception: Cannot use this operation on a shared drive item错误。
解决方案
方法1:将临时文件移至回收站(推荐新手)
直接调用文件对象的setTrashed(true)方法,把临时文件标记为已删除并移入共享盘回收站,该操作在共享盘环境下可正常执行,只要你拥有编辑权限即可。
修改createPDF函数中的删除逻辑:
// 替换原代码中的 tempFolder.removeFile(newTempFile); newTempFile.setTrashed(true);
方法2:彻底删除文件(需启用Drive高级服务)
如果需要直接彻底删除文件而非移入回收站,需先启用Google Drive Advanced Service:
- 在Apps Script编辑器中,点击「服务」→「添加服务」→ 选择「Drive API」完成添加
- 用以下代码替换删除逻辑:
Drive.Files.remove(newTempFile.getId(), {supportsAllDrives: true});
注意:此操作不可逆,且要求你的账号拥有共享盘的所有者/管理者权限。
权限前置检查
确保运行脚本的账号满足以下条件:
- 在目标共享云端硬盘中拥有编辑者及以上权限
- 共享盘的权限设置中已开启「允许成员删除文件」(路径:共享盘→设置→成员权限)
内容的提问来源于stack exchange,提问作者sedmundsfls
相关产品推荐
相关产品推荐

