Google云端服务。将文件复制到组驱动器文件夹。文件为空

时间:2016-08-19 19:22:06

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

我在运行google apps script时,从另一个Google表格生成的Google表格文件处理时遇到问题。当我运行脚本时,会生成一个新的输出文件并将其发送到具有特定标签的文件夹。目标是将输出文件添加到组驱动器中的特定文件夹。关于我的问题的脚本和文件都存在于组驱动器上。

当我运行脚本时,会发生这种情况。

  1. 在我的个人Google云端硬盘中创建了一个文件,因为我的文件夹名称与组驱动器上的文件名相同(这是我对脚本的测试环境)。我的驱动器上的此文件具有Google表格中的所有所需输出。一个文件也被添加到我的驱动器的根目录,但是脚本现在将其从根目录中删除。

  2. 在组驱动器上创建一个文件,但它完全为空。该文件已正确命名,但实际电子表格中没有内容。

  3. 以下是处理输出文件的脚本:

      var sourceFilename = ss.getName();
      var splitSourceFilename = sourceFilename.split("LMS");
      var targetFilename = splitSourceFilename[0] + "Allowed_Layers_Vx";
    
      // move the new spreadsheet to Allowed Layers Lists folder 
      var folders = DriveApp.getFoldersByName("Allowed Layers Lists");
      while (folders.hasNext()) {
        var folder = folders.next();
        var ssNew = SpreadsheetApp.create(targetFilename);
        var copyFile = DriveApp.getFileById(ssNew.getId());
        folder.addFile(copyFile);
        DriveApp.getRootFolder().removeFile(copyFile);
      }
    

    有关群组云端推广的其他一些信息:

    1. 我没有创建群组云端硬盘。它与我分享
    2. 我是文件和脚本所在文件夹的所有者。
    3. 我也是这些文件夹中所有文件和脚本的所有者。
    4. 我在此群组驱动器的每个级别都有编辑权限。

2 个答案:

答案 0 :(得分:1)

上面的脚本中没有任何内容实际上是“文件副本”。它只是用SpreadsheetApp.create(targetFilename)创建新的空文件并将其添加到文件夹中。

要制作Google表格的副本,您可以参考Google App Script: How do I make copy of spreadsheet and save it to particular folder?

上的答案

答案 1 :(得分:0)

在数据处理发生后,我最终将该代码块移动到脚本的末尾。出于某种原因,在我自己的驱动器中,当我将文件添加到另一个文件夹时无关紧要,脚本仍然会更新该文件的所有实例。但是,在组驱动器中,只更新了我自己的根目录中的文件(直到我将该代码块移动到脚本的末尾)。

欢迎任何有关为何发生这种情况的解释。