Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. function generateFolderTree() {
  2.  
  3. try {
  4.  
  5. // THIS IS THE TARGET SPREADSHEET NAME
  6. var ssName = "treeview";
  7.  
  8.  
  9. var ss = SpreadsheetApp.create(ssName);
  10.  
  11. // If you want a tree of any sub folder
  12.  
  13. var sheet = ss.getActiveSheet();
  14. // If you want to search from the top (root) folder
  15. //var parentFolder = DriveApp.getFoldersByName("Itembase Development").next();
  16. var parentFolder = DriveApp.getRootFolder();
  17.  
  18. var parents = new Array();
  19. parents.push(parentFolder.getName());
  20. sheet.appendRow([parentFolder.getName(), parentFolder.getUrl()]);
  21. getChildFolders(parentFolder, parents, sheet);
  22.  
  23. } catch (e) {
  24.  
  25. Logger.log(e.toString());
  26.  
  27. }
  28.  
  29. }
  30.  
  31.  
  32. function getChildFolders(parent, parents, sheet) {
  33.  
  34. var childFolders = parent.getFolders();
  35.  
  36. while (childFolders.hasNext()) {
  37.  
  38. var childFolder = childFolders.next();
  39.  
  40. Logger.log("Folder Name: " + childFolder.getName());
  41. Logger.log("Folder URL: " + childFolder.getUrl());
  42.  
  43. // Recursive call for any sub-folders
  44. var subtree = new Array();
  45. for(var g = 0; g < parents.length; g++){
  46. subtree.push(parents[g]);
  47. }
  48. subtree.push(childFolder.getName());
  49. listFolderContents(childFolder, subtree, sheet);
  50. getChildFolders(childFolder, subtree, sheet);
  51.  
  52. }
  53.  
  54. }
  55.  
  56.  
  57. // replace your-folder below with the folder for which you want a listing
  58. function listFolderContents(childFolder, subtree, sheet) {
  59. var files = childFolder.getFiles();
  60.  
  61. var file;
  62. var name;
  63. var link;
  64. var row;
  65. while(files.hasNext()) {
  66. file = files.next();
  67. name = file.getName();
  68. link = file.getUrl();
  69. var row = new Array();
  70. var dirs = "";
  71. for(var g = 0; g < subtree.length; g++){
  72. dirs = dirs + " -> " + subtree[g];
  73. }
  74. row.push(dirs);
  75. row.push(name);
  76. row.push(link);
  77. Logger.log("Row: " + row);
  78. sheet.appendRow( row );
  79. }
  80. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement