我正在尝试将几个文件夹及其内容从“我的驱动器”移动到“共享驱动器”(特定位置)。如果将文件夹从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"] ]);
}
}
}
}