Google 尝试将文件移动到文件夹时出现脚本类型错误
Google script Type error when try to move files to folder
我正在尝试根据 MIME 类型 select 多个文件(在本例中为 JPG 和 Google 文档)并移动到每种类型的特定文件夹。所以我尝试了以下方法:
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
我应该怎么做才能摆脱这个错误?我是否应该使用不同的方式将多个文件移动到特定文件夹?
尝试添加如下内容:
while(jpgfiles.hasNext()) {
let file = jpgfiles.next();
file.mmoveTo()....
修改点:
- 你的问题
TypeError: jpgfiles.moveTo is not a function
是因为 moveTo
的参数是文件夹对象。在您的脚本中,使用了文件夹 ID。
DriveApp.getFolderById(srcfolderId)
可以声明为一个变量。
getFilesByType
returns 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);
}
}
参考文献:
我正在尝试根据 MIME 类型 select 多个文件(在本例中为 JPG 和 Google 文档)并移动到每种类型的特定文件夹。所以我尝试了以下方法:
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
我应该怎么做才能摆脱这个错误?我是否应该使用不同的方式将多个文件移动到特定文件夹?
尝试添加如下内容:
while(jpgfiles.hasNext()) {
let file = jpgfiles.next();
file.mmoveTo()....
修改点:
- 你的问题
TypeError: jpgfiles.moveTo is not a function
是因为moveTo
的参数是文件夹对象。在您的脚本中,使用了文件夹 ID。 DriveApp.getFolderById(srcfolderId)
可以声明为一个变量。getFilesByType
returns 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);
}
}