文件迭代器正在移动幻象文件

时间:2019-08-28 17:13:12

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

我正在运行的用于将标题中具有特定名称的文件移动到新文件夹的应用程序脚本在每次运行脚本时都复制相同的文件。从源文件夹中删除文件似乎无效。

表单响应会收集在电子表格中,并使用附加组件将响应放入生成新Google文档的表单中。 Google文档适用于我们所有不同的建筑物,每个建筑物都有唯一的名称。该脚本应遍历文件名,然后将文件添加到特定的建筑物文件夹,然后将其从具有所有建筑物的文件夹中删除。当我运行该脚本时,它可以工作,但是在随后的运行中,所有复制的文件都将继续复制,并且除此以外,还会再复制任何新文件。

function movePittsburghFiles() {
  var sourceFolder=DriveApp.getFolderById('taqwdGs4MUEyUEl1WQ8');
  var destFolder = DriveApp.getFolderById('taqwV085WTVtdTdf');

  var files = DriveApp.searchFiles('title contains "3N - Pittsburgh Weekly"');
  while (files.hasNext()) {
    var file = files.next();
    destFolder.addFile(file);
    sourceFolder.removeFile(file);
  }

该脚本可以工作,但是它会在源文件夹中找到在以前的代码运行中已移动的相同文件,然后再次复制它们。当我转到Google云端硬盘中的文件夹时,这些文件未列出,但是脚本以某种方式不断找到它们。

1 个答案:

答案 0 :(得分:1)

问题:

  • .searchFiles()上调用DriveApp时,您正在搜索整个驱动​​器。

解决方案:

  • 改为在.searchFiles()上致电sourceFolder

摘要:

var files = sourceFolder.searchFiles('title contains "3N - Pittsburgh Weekly"');

参考文献: