尝试将文件移动到文件夹时出现 Google 脚本类型错误
Posted
技术标签:
【中文标题】尝试将文件移动到文件夹时出现 Google 脚本类型错误【英文标题】:Google script Type error when try to move files to folder 【发布时间】:2022-01-23 07:18:41 【问题描述】:我正在尝试根据 mime 类型(本示例中为 JPG 和 Google Docs)选择多个文件,并移动到每种类型的特定文件夹。所以我尝试了以下方法:
function test()
var srcfolderId = "abcdefghi";
var jpgFolderID=DriveApp.getFolderById(srcfolderId).createFolder("jpgfiles").getId();
var gdocFolderID=DriveApp.getFolderById(srcfolderId).createFolder("gdocfiles").getId();
var jpgfiles=DriveApp.getFolderById(srcfolderId).getFilesByType(MimeType.JPEG);
var gdocfiles=DriveApp.getFolderById(srcfolderId).getFilesByType(MimeType.GOOGLE_DOCS);
jpgfiles.moveTo(jpgFolderID);
gdocfiles.moveTo(gdocFolderID);
但这会产生错误:
TypeError: jpgfiles.moveTo is not a function
我应该怎么做才能摆脱这个错误?我应该使用其他方式将多个文件移动到特定文件夹吗?
【问题讨论】:
jpgfiles 是迭代器而不是文件 see this 【参考方案1】:修改点:
TypeError: jpgfiles.moveTo is not a function
的问题是因为moveTo
的参数是文件夹对象。在您的脚本中,使用了文件夹 ID。
DriveApp.getFolderById(srcfolderId)
可以声明为一个变量。
getFilesByType
返回 FileIterator。
当这些点反映在你的脚本中时,它变成如下。
修改脚本:
function test()
var srcfolderId = "abcdefghi";
var folder = DriveApp.getFolderById(srcfolderId);
var jpgFolder = folder.createFolder("jpgfiles");
var gdocFolder = folder.createFolder("gdocfiles");
var jpgfiles = folder.getFilesByType(MimeType.JPEG);
while (jpgfiles.hasNext())
jpgfiles.next().moveTo(jpgFolder);
var gdocfiles = folder.getFilesByType(MimeType.GOOGLE_DOCS);
while (gdocfiles.hasNext())
gdocfiles.next().moveTo(gdocFolder);
参考资料:
getFilesByType(mimeType) moveTo(destination)【讨论】:
【参考方案2】:尝试添加如下内容:
while(jpgfiles.hasNext())
let file = jpgfiles.next();
file.mmoveTo()....
【讨论】:
以上是关于尝试将文件移动到文件夹时出现 Google 脚本类型错误的主要内容,如果未能解决你的问题,请参考以下文章
将 com.google.gms:google-services:4.3.10 添加为项目 build.gradle 文件的类路径后下载时出现问题
简短的 tar 脚本:尝试将今天的日期添加到压缩文件名时出现“找不到命令”
将 XAMPP 文件夹移动到新计算机,现在在尝试启动 MySQL 时出现“(XAMPPErrorDomain error 1.)”