如何在Google Apps脚本中输入特定的文件夹ID?

时间:2019-04-03 00:44:28

标签: google-apps-script google-drive-api

我正在尝试运行一个简单的脚本将文件从一个文件夹移动到另一个文件夹,但是我不确定如何将文件夹输入到脚本中。

我正在尝试使用this code I found,以便可以在script.google.com上设置触发器,并使文件自动移动。

所以我输入:

var source_folder = DriveApp.getFolderById("###redacted###")

var dest_folder = DriveApp.getFolderById("###redacted###")

function moveFiles(source_folder, dest_folder) {

  var files = source_folder.getFiles();

  while (files.hasNext()) {

    var file = files.next();
    dest_folder.addFile(file);
    source_folder.removeFile(file);

  }
}

但是当我点击“运行”时,我看到此错误:TypeError: Cannot call method "getFiles" of undefined. (line 7, file "Code")

我不知道实际使用source_folderdest_folder应该使用什么语法。目标只是在脚本中指定Google Drive文件夹,然后设置触发器,以便文件每隔几个小时左右自动移动一次。

我实际上如何为脚本指定文件夹,以便脚本能够正常运行?

1 个答案:

答案 0 :(得分:1)

当您要从文件夹ID中检索folder对象时,请使用DriveApp.getFolderById(folderId)Ref

TypeError: Cannot call method "getFiles" of undefined. (line 7, file "Code")错误的原因是由于source_folder的{​​{1}}和dest_folder

在这种情况下,运行function moveFiles(source_folder, dest_folder) {}的功能时,由于未给出moveFilessource_folder,因此这些值将替换为dest_folder。由此,发生这种错误。为了将undefinedsource_folder用作全局变量并避免出现此错误,请进行以下修改。

发件人:

dest_folder

收件人:

function moveFiles(source_folder, dest_folder) {