通过GScript移动文件时DriveApp.File.moveTo参数不匹配报错如何解决?
报错原因
DriveApp.File.moveTo() 方法的入参要求为DriveApp.Folder类型的对象,你当前传入的是字符串格式的文件夹ID,参数类型不匹配,因此触发了方法签名不匹配的报错。
修正方案
调整代码逻辑,搜索到目标文件夹后直接保留文件夹对象,不需要仅提取ID后再传入,修正后的代码如下:
function myMoveFile() { // 直接保存搜索到的文件夹对象,不提前提取ID var targetFolder = DriveApp.searchFolders("Title Contains 'Final_Folder'").next(); var myNewDoc = DocumentApp.create("Doc per Script"); var myFileID = myNewDoc.getId(); DocumentApp.openById(myFileID).getBody().appendParagraph("TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT"); // 直接传入文件夹对象调用moveTo DriveApp.getFileById(myFileID).moveTo(targetFolder); }
额外注意点
- 如果你的云盘内存在多个名称包含
Final_Folder的文件夹,next()会默认取第一个匹配到的结果,如果你需要定位唯一文件夹,建议直接通过文件夹ID获取对象,写法为var targetFolder = DriveApp.getFolderById("替换为你的目标文件夹ID字符串"),精准度更高 - 可以加异常判断处理搜索不到目标文件夹的场景,避免
next()调用触发无匹配项的报错
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

