仅在Google工作表中生成子文件夹列表

时间:2019-03-04 15:01:53

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

我一直在尝试编写一行代码,以自动在一个特定的文件夹中生成子文件夹列表。

使用下面的代码,我设法获取了文件列表,但是我无法将代码修改为仅获取子文件夹。

有人可以帮我吗?

欢呼 安迪

我如何获得文件

function listFilesInFolder(id) {
  var folder = DriveApp.getFolderById('[ID]');
  var contents = folder.getFiles();
  var file;
  var name;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Mockups');
  var date;
  var size;
  var link;

  sheet.clear();
  sheet.appendRow(["Annons", "Länk", "Uppladdad"]);


  while(contents.hasNext()) {
    file = contents.next();
    name = file.getName();
    date = file.getDateCreated()
    size = file.getSize()
    link = file.getUrl();

    data = [name, link, date, ]
    sheet.appendRow(data);
  }
};

2 个答案:

答案 0 :(得分:0)

实际上,有特定于文件夹的命令。修改您的功能,如下所示:

var subFolders = folder.getFolders();

while (subFolders.hasNext()
  {    
  var childFolder = childFolders.next(); 

  var folderID = childFolder.getId();    
  Logger.log(folderID);    
  }

答案 1 :(得分:0)

使用下面的代码进行处理。

感谢J. G.的帮助,您的输入使它成功了!

function generateFolderIndex(id) {
   var folder = DriveApp.getFolderById('[ID]');
   var subFolders = folder.getFolders();
   var childFolders = subFolders
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Projekt');

   sheet.clear();
   sheet.appendRow(["Projekt", "Länk", "Skapad"]);

while (subFolders.hasNext())
  {    
  var childFolder = childFolders.next(); 

  var folderID = childFolder.getId();
  var name = childFolder.getName()
  var link = childFolder.getUrl()
  var date = childFolder.getDateCreated()


   data = [name, link, date, ]
    sheet.appendRow(data);

  }
};