javascript - 在 Google Apps 脚本网络应用中显示文件和文件夹

标签 javascript file google-apps-script google-drive-api

我正在使用 Google Apps 脚本开发一个网络应用程序,用户将能够在其驱动器中搜索并打开文件。现在我用这个循环显示文件:

var files = DriveApp.searchFiles('title contains "banana"');
var fileCount = 0;

while (files.hasNext()) {
  var file = files.next();
  app.getElementById('displayFilesPanel').add(app.createAnchor(file.getName() + ' - ' + file.getOwner().getEmail(), file.getUrl()));
  fileCount++;
}

这里的问题是 getOwner() 方法需要相当长的时间(大约 0.1 秒),加起来很快。另一件事是,这些代表文件的链接看起来不太好。

是否有任何方法可以使用 DriveApp.searchFiles() 进行这些搜索并使用 anchor /链接以外的其他内容显示结果?

编辑: 正如 Zig Mandel 和 Serge insas 提到的那样,应该考虑 HTML-Service 以使其看起来更好。 我发现 DriveApp.searchFiles 函数不是很有用,因为当我将它与“标题包含“香蕉””等参数一起使用时,它不会在 5 分钟超时限制内完成。问题是它找到了大约 40 个匹配项,但随后可能检查了我驱动器中的所有其他(> 120000)文件。 就我而言,我使用 getAllFilesForPaging(number, token) 函数,并使用 .indexOf('banana') != -1 方法检查每个文件的标题是否包含“banana”。

最佳答案

您无法解决 DriveApp 的速度问题。它显然又进行了一次往返以获取所有者的电子邮件。 为了让它看起来更好,使用 htmlService 而不是 uiApp。在两者中,您都可以添加文件图标以使其看起来更好。

关于javascript - 在 Google Apps 脚本网络应用中显示文件和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895779/

相关文章:

javascript - htaccess 启动文件 javascript

google-apps-script - 我如何获得法语区域的日期

javascript - 在 DATE 验证列中创建空值

javascript - 在 javascript/jquery 中读取文件

javascript - 在 Google Sheet 脚本中调用服务器端函数后关闭 HTML 页面

javascript - 列表复选框更改事件在 jquery 中不触发

javascript - 三个 : PlaneGeometry load texture to specific faces

javascript - jQuery textcomplete 正则表达式匹配无法正常工作

javascript - p :menuitem onclick update not working

android - 将位图写入文件中的 block android