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