尝试将文件移动到文件夹时出现Google脚本类型错误



我试图根据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

我应该怎么做才能避免这个错误?我应该使用不同的方式将多个文件移动到特定文件夹吗?

修改点:

  • 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(目的地(

尝试添加以下内容:

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

相关内容

  • 没有找到相关文章

最新更新