Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function generateFolderTree() {
- try {
- // THIS IS THE TARGET SPREADSHEET NAME
- var ssName = "treeview";
- var ss = SpreadsheetApp.create(ssName);
- // If you want a tree of any sub folder
- var sheet = ss.getActiveSheet();
- // If you want to search from the top (root) folder
- //var parentFolder = DriveApp.getFoldersByName("Itembase Development").next();
- var parentFolder = DriveApp.getRootFolder();
- var parents = new Array();
- parents.push(parentFolder.getName());
- sheet.appendRow([parentFolder.getName(), parentFolder.getUrl()]);
- getChildFolders(parentFolder, parents, sheet);
- } catch (e) {
- Logger.log(e.toString());
- }
- }
- function getChildFolders(parent, parents, sheet) {
- var childFolders = parent.getFolders();
- while (childFolders.hasNext()) {
- var childFolder = childFolders.next();
- Logger.log("Folder Name: " + childFolder.getName());
- Logger.log("Folder URL: " + childFolder.getUrl());
- // Recursive call for any sub-folders
- var subtree = new Array();
- for(var g = 0; g < parents.length; g++){
- subtree.push(parents[g]);
- }
- subtree.push(childFolder.getName());
- listFolderContents(childFolder, subtree, sheet);
- getChildFolders(childFolder, subtree, sheet);
- }
- }
- // replace your-folder below with the folder for which you want a listing
- function listFolderContents(childFolder, subtree, sheet) {
- var files = childFolder.getFiles();
- var file;
- var name;
- var link;
- var row;
- while(files.hasNext()) {
- file = files.next();
- name = file.getName();
- link = file.getUrl();
- var row = new Array();
- var dirs = "";
- for(var g = 0; g < subtree.length; g++){
- dirs = dirs + " -> " + subtree[g];
- }
- row.push(dirs);
- row.push(name);
- row.push(link);
- Logger.log("Row: " + row);
- sheet.appendRow( row );
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement