谷歌表单上传的文件需要自动分组在一个文件夹



我有一个Google表单,允许用户填写业务详细信息,然后在表单末尾添加JPG文件。我需要一个应用程序脚本:

  1. 在Drive中创建文件夹。文件夹名称应与第二个输入字段"企业名称"收到的输入相同。
  2. 将响应中收到的所有文件移动到该文件夹。

我试过了:

function onFormSubmit(e) {
const folderId = "1VXzzzzzzzzzzzzzz";  
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
const itemResponses = formResponses[formResponses.length-1].getItemResponses();
Utilities.sleep(3000); // This line might not be required.
// Prepare the folder.
const destFolder = DriveApp.getFolderById(folderId);
const folderName = itemResponses[0].getResponse();
const subFolder = destFolder.getFoldersByName(folderName);
const folder = subFolder.hasNext() ? subFolder : destFolder.createFolder(folderName);
// Move files to the folder.
itemResponses[1].getResponse().forEach(id => DriveApp.getFileById(id).moveTo(folder));
}

但是,这不是一个完整的解决方案,因为每次我运行脚本时都会重新创建相同的文件夹。如果我能在表单提交上运行这个脚本,那就太好了。

subFolder变量不指向文件夹,而是指向DriveApp.FolderIterator类的一个实例。要得到一个文件夹,使用.next(),像这样:

const folder = subFolder.hasNext() ? subFolder.next() : destFolder.createFolder(folderName);

相关内容

最新更新