Я создал форму Google, в которой записываются метки времени, числовое значение и файл изображения от его респондентов в Google Sheet. Файлы изображений сохраняются в «imageFolder», но когда я получаю слишком много ответов, мои imageFolder и Google Sheet становятся слишком большими. В идеале я хочу, чтобы мой imageFolder и его Google Sheet оставались ниже 50 записей.
Я хочу переместить 10 самых старых изображений в imageFolder в waitFolder. Я хочу сохранить массив этих самых старых значений из столбца "Сколько?" до того, как запись удалена. Затем я хочу, чтобы любые новые записи заменяли самые старые, чью информацию я уже сохранил в waitFolder и массиве howMany () (myArray10).
Я знаю, что мне нужно переместить 10 изображений из «imageFolder» в «waitFolder» "Использование функций в соответствии с:
var text1 = "Response Form";
var text2 = "imageFolder";
var text3 = "Copy of imageFolder";
var text4 = "Wait Folder"
function moveFiles(sourceFileId, targetFolderId) {
var myFolder = DriveApp;
var files = myFolder.getFileById(sourceFileId).getFiles()
while (files.hasNext()) {
var file = files.next());
var dest = myFolder.getFolderById(targetFolderId);
dest.addFile(file);
var pull = DriveApp.getFolderById(sourceFolderId);
pull.removeFile(file);
}
}
function getMyId(text) {
var Ids = [];
var myFolder = DriveApp;
var folderIter = myFolder.getFoldersByName(text);
var folder = folderIter.next();
var folderIter = folder.getFiles();
while(folderIter.hasNext()) {
var file = folderIter.next();
var fileId = file.getId();
Ids.push(fileId);
}
return Ids
}
function getMyId10(text) {
var Ids = [];
var myFolder = DriveApp;
var folderIter = myFolder.getFoldersByName(text);
var folder = folderIter.next();
var folderIter = folder.getFiles();
for (var i = 0; i < 10; i++) { //Take the first 10
while(folderIter.hasNext()) {
var file = folderIter.next();
var fileId = file.getId();
Ids.push(fileId);
}
}
return Ids
}
function main() {
var imageFolderId = getMyId(text2);
var imageFolderId10 = getMyId10(text2);
var waitFolderId = getMyId(text4);
var Copy_imageFolderId = getMyId(text3);
moveFiles(imageFolderId, Copy_imageFolderId); //make a copy of imageFolder
moveFiles(imageFolderId10, waitFolderId); //Move first 10, remove from original
}
Как я могу переместить изображения из imageFolder в Copy_imageFolder? Как я могу переместить 10 самых старых изображений из imageFolder в waitFolder? Как я могу удалить 10 самых старых изображений из imageFolder? Как я могу ограничить количество строк в моей электронной таблице, используя скрипт Google? Как я могу перезаписать мои самые старые строки новыми записями / строками?
edit1: я получаю неожиданные токены в каждой функции, и я не уверен, почему? Кажется, в то время, когда я * oop моей функции getMyId () выскочил.
edit2: Теперь я понимаю, почему я получаю неожиданные токены. Кажется, я был безответственным со своими петлями. Я заменил свое 'while's на' на 'for, чтобы исправить эту ошибку.
edit3: я удалил некоторые ненужные фрагменты кода, чтобы было легче следовать.
edit4:
Вот как выглядит мой ответ в форме в моей электронной таблице. Изображения сохраняются в подпапке imageFolder. Но я не могу взять 10 элементов массива из электронной таблицы, используя howMany (). Я также не могу переместить какие-либо файлы в любом месте. Когда я вызываю moveFiles (), я получаю неожиданную ошибку, как только он запрашивает мое DriveApp. Как мне сделать так, чтобы мои moveFiles () перемещали мои изображения из исходных в целевые папки?