将文件夹和文件移动到共享驱动器(Google脚本)

时间:2020-04-18 00:32:53

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

我正在尝试将几个文件夹及其内容从“我的驱动器”移动到“共享驱动器”(特定位置)。如果将文件夹从MyDrive移到另一个MyDrive位置,我可以执行类似的代码而不会出现任何问题。但是,对于共享驱动器,它是不同的。我了解我无法执行“ addFolder()或addFile()”,因此在阅读某些论坛时,似乎必须使用makeCopy()代替。我从未在共享驱动器中执行过脚本,但听说其行为与“我的驱动器”不同。

我正在使用以下代码。我的问题如下: 1. makeCopy()似乎不起作用。 2.如何从共享驱动器获取创建日期

这是我的测试文件: https://docs.google.com/spreadsheets/d/10xznoTAH2yS-Xnf-b3cCc0j8vxa9jS10WP1HjQapzNw/edit?usp=sharing

非常感谢您的投入和帮助!

function moveFolders() {
      var ss = SpreadsheetApp.openById('sheetIDhere');
      var sheet = ss.getSheetByName('Sheet11');
      var range = sheet.getRange(2,1, sheet.getLastRow(), sheet.getLastColumn());
      var values = range.getValues();

      for (var i = 0; i <= values.length-1; i++) {
        var folderid = values[i][0];
        var sdDriveId = values[i][1];
        var moveDate = values[i][2];
        var comments = values[i][3];

        if (moveDate != "" ) {continue;}  // if date exists, skip.
        if (folderid == "" || sdDriveId == "") {   // if source and target ids are missing, post message
         sheet.getRange(i+2,4).setValue('Missing Value');
        }
        else {
          var source_Folder = DriveApp.getFolderById(folderid).getFiles(); //source folder
          var dest_Folder = DriveApp.getFolderById(sdDriveId); //destination folder

          while (source_Folder.hasNext()) {
            var file = source_Folder.next();
            var destination = file.makeCopy(name,dest_Folder);
            var date = destination.getDateCreated();
            sheet.getRange(i+2,4,1,2).setValues([ [date, "Processed"] ]);
          }
        }
      }
    }

0 个答案:

没有答案