尝试将文件移动到文件夹时出现 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.)”

将 JSON 从 googlecloud 存储上传到 bigquery 时出现混淆

将代码从一个类移动到新类时出现问题?

将 Google Cloud 语言库添加到 Android 应用时出现重复的类