You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Google Drive文件所有Get/Is类方法的返回结果?

动态捕获GAS File对象信息的方案

你可以利用JavaScript的对象属性访问语法,直接通过方法名字符串调用对应的get/is开头的方法,不需要依赖第三方的executeFunctionByName函数。以下是实现代码:

function logFileInfo(aFile) {
  const fileInfo = {};
  // 获取对象的所有属性/方法名
  const allProps = Object.keys(aFile);
  
  allProps.forEach(prop => {
    // 过滤get或is开头的方法
    if (/^get|^is/.test(prop)) {
      try {
        // 通过属性访问调用方法,并保存结果
        const result = aFile[prop]();
        // 处理无法转为字符串的结果(比如Date对象)
        fileInfo[prop] = typeof result === 'string' ? result : JSON.stringify(result);
      } catch (e) {
        // 捕获需要参数或执行失败的方法,记录错误信息
        fileInfo[prop] = `执行失败: ${e.message}`;
      }
    }
  });
  
  // 将结果输出到日志,或者转为文本
  Logger.log(JSON.stringify(fileInfo, null, 2));
  return fileInfo;
}

关键细节说明:

  • 方法调用方式:aFile[prop]()是核心逻辑,利用JS对象的字符串索引特性直接执行对应方法,无需额外工具函数。
  • 异常处理:加入try/catch块避免少数带参数的get类方法或权限问题导致程序中断,同时记录错误原因。
  • 结果格式化:对日期、对象这类非字符串结果用JSON.stringify转换,保证内容可正常记录查看。
  • 安全过滤:通过正则/^get|^is/精准匹配无副作用的查询类方法,规避makeCopy这类会修改文件的操作。

额外优化建议:

  • 若需要排除特定方法,可添加黑名单过滤:
    const blacklist = ['getUnwantedMethod'];
    if (/^get|^is/.test(prop) && !blacklist.includes(prop)) {
      // 执行逻辑
    }
    
  • 可以将结果写入Google Sheets,比Logger日志更适合批量查看多文件信息。

内容的提问来源于stack exchange,提问作者pgSystemTester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:12:25