Проблема в том, что вы пытаетесь удалить файл на общем диске с помощью DriveApp
. Это сработает, если вы сделаете это вместо этого с помощью Advanced Drive service , где вы можете укажите "supportsAllDrives": true
Итак, после включения расширенного сервиса: замените
var parents = newFile.getParents();
while (parents.hasNext()) {
var parent = parents.next();
parent.removeFile(newFile);
}
на
var id = copyFile.getId();
// or alternatively `var id = newFile.getId();` - because it is the same
Drive.Files.remove(id,{"supportsAllDrives": true})
Что касается getFolder.addFile(newFile);
Как только вы удалите файл, вы больше не сможете его снова добавить. Кроме того, я не понимаю вашу мотивацию для этого - достаточно copyFile.setName(newName);
, чтобы переименовать файл - вам не нужно удалять файл со старым именем и вставлять файл с новым именем.
ОБНОВЛЕНИЕ
Если ваша цель - скопировать файл в папку командного диска, вы можете легко сделать это с помощью Drive API:
function makeCopyFile(folderID, fileID, newName){
var resource = {
"parents": [
{
"id": folderID
}
],
"title": newName
}
Drive.Files.copy(resource, fileID, {"supportsAllDrives": true})
}