Я работаю над системой управления файлами и папками диска (включая подпапки) для отображения в таблицах Google. Проект очень полезен для следующих и будущих улучшений и работает очень хорошо.
Вот ссылка на проект (скопируйте на свой диск, если хотите увидеть код в действии): https://docs.google.com/spreadsheets/d/1NnK_fkyi5b6ddlgTX2tKE52G4dWmoRYvjzdXiO2PxH4/edit?usp=sharing
Тем не менее, я борюсь с проблемой: когда я добавляю новый файл, активный лист не обновляется в тот момент, когда добавляется новый файл. Но если я добавлю еще один новый файл, активный лист обновится с предыдущим. И так далее. Обновление происходит с файлом n-1. Вы можете увидеть проект в работе, чтобы получить представление.
Итак, моя проблема в том, чтобы обновить листы одновременно с добавлением нового файла.
Код основан на этой итерации:
/* This function will process the submitted form */
function uploadFiles(form) {
try {
/* Find the first level folder, create if the folder does not exist */
var firstLevelFolderName = "Persons";
var folders = DriveApp.getFoldersByName(firstLevelFolderName);
var firstLevelFolder = (folders.hasNext()) ? folders.next() : DriveApp.createFolder(firstLevelFolderName);
/* Find the user-specific folder, create if the folder does not exist */
var dropbox = form.myName + " " + form.myEmail; /* Name of the Drive folder where the files should be saved */
folders = DriveApp.getFoldersByName(dropbox);
var folder = (folders.hasNext()) ? folders.next() : firstLevelFolder.createFolder(dropbox);
/* Get the file uploaded though the form as a blob */
var blob = form.myFile;
var file = folder.createFile(blob);
/* Set the file description as the name of the uploader */
file.setDescription("Uploaded by " + form.myName);
/* Return the download URL of the file once its on Google Drive */
return "File uploaded successfully " + file.getUrl();
} catch (error) {
/* If there's an error, show the error message */
return error.toString();
}
}