【问题标题】:I have a shared google drive folder . Is there any methods to list all the files in my google sheets?我有一个共享的谷歌驱动器文件夹。有什么方法可以列出我的谷歌表格中的所有文件吗?
【发布时间】:2021-03-25 04:39:29
【问题描述】:

我有一个不在我的谷歌驱动器中的共享文件夹链接。它是一个共享文件夹。我可以使用脚本编辑器列出我的谷歌表格中的所有文件吗? 我已经使用了此代码,但它仅适用于我的谷歌驱动器中的文件夹。

function listFolderContents() {
  var foldername = 'your-folder';
  var folderlisting = 'listing of folder ' + foldername;
  
  var folders = DriveApp.getFoldersByName(foldername)
  var folder = folders.next();
  var contents = folder.getFiles();
  
  var ss = SpreadsheetApp.create(folderlisting);
  var sheet = ss.getActiveSheet();
  sheet.appendRow( ['name', 'link'] );
  
  var file;
  var name;
  var link;
  var row;
  while(contents.hasNext()) {
    file = contents.next();
    name = file.getName();
    link = file.getUrl();
    sheet.appendRow( [name, link] );     
  }  
};

请帮忙。

【问题讨论】:

  • 我不确定列出谷歌表格中的所有文件是什么意思,但是是的,您可以使用 Drives API 访问共享文件夹中的文件。您需要启用它
  • @Cooper 我如何启用它?

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


【解决方案1】:

对具有文件夹 ID 的文件夹尝试此操作

function listing() {
  var folderID = '_______folder_ID_here_______'
  var folder = DriveApp.getFolderById(folderID);
  var contents = folder.getFiles();
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow( ['name', 'link'] );
  var file;
  var name;
  var link;
  while(contents.hasNext()) {
    file = contents.next();
    name = file.getName();
    link = file.getUrl();
    sheet.appendRow( [name, link] );     
  }  
};

【讨论】:

  • 但我认为这仅适用于与我的 google id 关联的文件夹。如果有人让他的文件夹可以公开访问,我该如何从该文件夹中列出
  • 这适用于您已收到授权并知道 ID 的“外国”文件夹。经测试。尝试使用该 ID = 1lVMeYvrbmrVYHBF0ekMe1uwNSONaSzjr
  • 谢谢。这是工作。非常感谢@mike-steelson
猜你喜欢
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多