2016-01-10 2 views
0

У меня есть функция, которая по конструкции должны:.setText() не работает

  1. Создать новый каталог
  2. Копировать документы из указанной директории вновь созданный один
  3. Установить текст скопированных документов

И я реализовал это таким образом:

function copyDocsAndSetText(fromDirId, toDirId) { 
    var toDir = DriveApp.openFolderById(toDirId); 
    var cwd = toDir.createFolder("New folder"); 

    var fromDir = DriveApp.openFolderById(fromDirId); 
    var originalFiles = fromDir.getFiles(); 
    while (originalFiles.hasNext()) { 
    var file = originalFiles.next(); 
    file.makeCopy(cwd); 
    } 

    var copiedFiles = cwd.getFiles(); 
    while (copiedFiles.hasNext()) { 
    var file = copiedFiles.next(); 
    var doc = DocumentApp.openById(file.getId()); 
    doc.getBody().setText("It works!"); 
    } 
} 

Я должен видеть: «Это работает!» как содержимое каждого файла во вновь созданной директории, но я этого не делаю. Что я делаю неправильно? Или это какая-то ошибка?

+0

проверки разумности: [ 'doc.saveAndClose()'] (https://developers.google.com/apps-script/reference/ документ/документ # saveAndClose()) – Emissary

+1

@Emissary очень обязательный – askhat

ответ

0

Вы сделали небольшую ошибку, замените openFolderById с getFolderById

var toDir = DriveApp.getFolderById(toDirId); 
var fromDir = DriveApp.getFolderById(fromDirId); 
+0

Конечно, спасибо. Эта ошибка была сделана только здесь. – askhat

+0

Работает ли он сейчас? Если это так, вы можете пометить его как ответ;) – iJay

+1

Фактический ответ: @SaveAndClose() – askhat