拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 尝试将档案移动到档案夹时出现Google脚本型别错误

尝试将档案移动到档案夹时出现Google脚本型别错误

白鹭 - 2022-02-12 1958 0 0

我正在尝试根据 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

我应该怎么做才能摆脱这个错误?我应该使用不同的方式将多个档案移动到特定档案夹吗?

uj5u.com热心网友回复:

改装要点:

  • 您的问题的原因TypeError: jpgfiles.moveTo is not a function是由于自变量moveTo是档案夹物件。在您的脚本中,使用档案夹 ID。
  • DriveApp.getFolderById(srcfolderId) 可以宣告为一个变量。
  • getFilesByType 回传档案迭代器。

当这些点反映在你的脚本中时,它变成如下。

修改后的脚本:

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)
  • 移动到(目的地)

uj5u.com热心网友回复:

尝试添加如下内容:

while(jpgfiles.hasNext()) {
  let file = jpgfiles.next();
  file.mmoveTo()....
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *