【问题标题】:List files inside a shared drive folder in spreadsheets在电子表格中列出共享云端硬盘文件夹中的文件
【发布时间】:2021-06-05 07:29:43
【问题描述】:

我正在尝试在电子表格中列出共享驱动器中的所有文件及其名称和 URL 链接。

我遇到了以下 Google 脚本

function findFilesInfo() {

  const folderId = '1vNaHwTQ2WObU9Hil5GMqXdiokYp5wfDH'
  const folder = DriveApp.getFolderById(folderId)
  const files = folder.getFiles()
  const source = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = source.getSheetByName('Sheet2');
  const data = [];
  
  while (files.hasNext()) {
      const childFile = files.next();
      var info = [ 
        childFile.getName(), 
        childFile.getUrl(),
        childFile.getLastUpdated(),  
      ];
    
    data.push(info);
  }
  sheet.getRange(2,1,data.length,data[0].length).setValues(data);
}

From the following question here

我尝试实现它并且它适用于我自己的个人驱动器,但是当我将 ID 更改为共享驱动器时,它一直给我以下错误:

TypeError: Cannot read property 'length' of undefined (line 20, file "get name")

我尝试删除 data.length 或为 getRange 函数设置一个特定数字,这都给了我同样的错误。

我在这里做错了吗?

【问题讨论】:

标签: google-apps-script google-sheets google-drive-api


【解决方案1】:

替换

sheet.getRange(2,1,data.length,data[0].length).setValues(data);

通过

if(data.length > 0) sheet.getRange(2,1,data.length,data[0].length).setValues(data);

以上是因为文件夹没有任何文件时会出现错误消息。

关于使用子文件夹的相关问答

【讨论】:

  • 啊,我明白了!好的,跟进问题,该文件夹实际上包含子文件夹,这就是它返回为空的原因吗?如果是,那么我该如何调整脚本以使其不断打开子文件夹?谢谢!
  • @Mike 我添加了一些可能对您有帮助的链接。
猜你喜欢
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 2020-03-30
相关资源
最近更新 更多