Monday, October 26, 2015

List Folders and Files Recursively using Google App Script.

 I got the problem because using 'recursive' as function name, :)

 At least now I know that, :)

 The next? Beautifying the result, :D 

.
function listFilesNFolders(form) {
  var list = [];
  var lv = 0;                    //lv for level or depth
  list.push(['tadaa...<br>']);
  list.push(['heheh...']);
  var row = [];
  row.push('<br> Hello World!!! ');
  list.push(row);
  
  var home = DriveApp.getFolderById('0BxZS62a5NdNYUGxySmp2QW41OUU'); 
  list.push('<br>');
  list.push(home.getName());
  crawl(home,list,lv);
  return list;
}

//don't use 'recursive' as function name, it won't work
function crawl(home,list,lv){
  lv++;
  list.push('<br>tadaa...'+lv+'...');

  var files=home.getFiles();  
  while (files.hasNext()){
    var file=files.next();
    list.push('<br>f '+file.getName());
  }
  
  var folders=home.getFolders();
  while (folders.hasNext()){
    var folder=folders.next();
    list.push('<br>d '+folder.getName());
    
    crawl(folder,list,lv);
  }
}

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}



.