Thank you guys for all your help thusfar with setting up this recursive loop in Team drive. Below is what I have so far. My only problem at this point is that there are tens of thousands of folders in my specified Team Drive. So I think I need to get a continuation token to keep the script running longer than 6 minutes. However I have absolutely no clue where in the script to get or store the tokens. I think the easiest would be to just run the token every 1-10 iterations to be safe. Below is my current code:
function generateFolderTree() {
try {
var rootFolder = DriveApp.getFolderById('xxxxxxxxxxxxxxx');
var rootFolderName = rootFolder.getName();
var rootsFolders = rootFolder.getFolders();
//var ss = SpreadsheetApp.create("Emptyfolderslist"+ Math.floor(Date.now() / 1000));
var ss = SpreadsheetApp.openById('xxxxxxxxxxxxxxxxxxxx');
var sheet = ss.getSheets()[0];
sheet.appendRow(["Parent Folder", "Folder URL", "Folder Name", "", "folder count", "file count"]);
while( rootsFolders.hasNext()) {
var currentFolder = rootsFolders.next()
var currentFolderFiles = currentFolder.getFiles();
var currentFolderFolders = currentFolder.getFolders();
var folderscount = 0;
var filescount = 0;
while( currentFolderFiles.hasNext()){
filescount ++;
currentFolderFiles.next();
}
while( currentFolderFolders.hasNext()){
folderscount++;
currentFolderFolders.next();
}
var path = '';
var parentfldrs = currentFolder.getParents();
while( parentfldrs.hasNext()) {
path = path + " - " + parentfldrs.next().getName();
}
sheet.appendRow(["'============================="]);
sheet.appendRow([path, currentFolder.getUrl(), currentFolder.getName(), "", folderscount, filescount]);
getChildFolders(currentFolder, ss);
}
} catch (e) {
Logger.log(e.toString());
}
}
function getChildFolders(aFolder, ss) {
var childFolders = aFolder.getFolders();
var filesInFolder = aFolder.getFiles();
var sheet = ss.getSheets()[0];
var foldercount = 0;
var filecount = 0;
var childFolder = '';
var parentFolders = '';
var loop = 0;
while( childFolders.hasNext()){
foldercount = 0;
filecount = 0;
childFolder = childFolders.next();
var subFolders = childFolder.getFolders();
var subFiles = childFolder.getFiles();
while( subFolders.hasNext()) {
foldercount++;
subFolders.next();
}
while( subFiles.hasNext()) {
filecount++;
subFiles.next()
}
var parentfldrs = childFolder.getParents();
while( parentfldrs.hasNext()) {
parentFolders = parentfldrs.next().getName();
}
sheet.appendRow([parentFolders, childFolder.getUrl(), "'----", childFolder.getName(), foldercount, filecount]);
getChildFolders(childFolder, ss);
}
}
I have read a couple other links here with similar questions using search, shown below:
Google Apps Script: How to use ContinuationToken with recursive folder iterator
Google Apps Script To Copy Entire Google Drive File Structure; How To Avoid Timeouts?