我试图根据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
的参数是文件夹对象。在脚本中,将使用文件夹IDDriveApp.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()....