0
votes

Can anyone help me adapt the code taken from here

http://www.acrosswalls.org/ortext-datalinks/list-google-drive-folder-file-names-urls/

function listFolderContents() {
  var foldername = 'home folder';

  var folders = DriveApp.getFoldersByName(foldername)

  var folder = folders.next();
  var contents = folder.getFolders();

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('folders');
  sheet.clear();
  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] );     
  }  
};

to also list subfolders (it only lists folders within the first folder right now). I feel like it's very easy but can't quite figure it out.

Thanks

1

1 Answers

1
votes

This is an adapted version of the code you have provided with the requirements you need:

function listFolderContents(){
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('folders');
  sheet.clear();
  sheet.appendRow( ['name', 'link'] );
  // Get all folders
  var folders = DriveApp.getFolders();
  var file;
  // Iterate over them
  while(folders.hasNext()){
    file = folders.next();
    sheet.appendRow([file.getName(), file.getUrl()]);
  }
}

You have to use DriveApp.getFolders(); to get all folders in your Drive and then you can iterate over them.

Docs

Please, check these docs to get more familiar on how to handle Drive folders using Apps Script: