Reputation: 3
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
Upvotes: 0
Views: 5111
Reputation: 2342
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.
Please, check these docs to get more familiar on how to handle Drive folders using Apps Script:
Upvotes: 1