Wednesday, October 21, 2015

List All Files and Folders into Google Spreadsheet using Google App Script

 I updated my last code, so it will list all folders name too, in addition of files name.

 It will search the files and folders name in certain folder,

 get the name,

 the date it created,

 the size,

 the url address,

 thi file id,

 description,

 and the MIME type (except in folder, I hardcoded it by write string "folder")



 
function uploadFiles(form) {
  try {
    var dropbox = "Testing";
    var folders = DriveApp.getFoldersByName(dropbox);
    if (folders.hasNext()) {
      var folder = folders.next();
    } else {
      var folder = DriveApp.createFolder(dropbox);
    }
    folders = folder.getFoldersByName(form.myNIM);
    if(folders.hasNext()){
      var anak = folders.next();
    } else{
      var anak = folder.createFolder(form.myNIM);
    }
    var blob = form.myFile;    
    var file = anak.createFile(blob);    
    file.setDescription("Uploaded by " + form.myName);
   // listFilesAndFoldersInFolder(folder)
    list_all_files_and_folders_inside_one_folder_without_subfolders()
    return "File uploaded successfully " + file.getUrl();
    
  } catch (error) {
    
    return error.toString();
  }
  
}

function list_all_files_and_folders_inside_one_folder_without_subfolders(){
  var ss = SpreadsheetApp.openById("11AzGyCcWfvcE_mUltyjAx17wJDghOS-YH5e_zrHT-zc");
  SpreadsheetApp.setActiveSpreadsheet(ss);
  var sh = SpreadsheetApp.getActiveSheet();
  sh.clear();
  var folder = DriveApp.getFolderById('0BxZS62a5NdNYUGxySmp2QW41OUU'); // I change the folder ID  here 
  var list = [];
  //list.push(['Name','ID','Size']);
  list.push(["Name", "Date", "Size", "URL", "Download", "Description", "MIME"]);

  var files = folder.getFiles();
  while (files.hasNext()){
    file = files.next();
    var row = []
    //row.push(file.getName(),file.getId(),file.getSize());
    row.push(file.getName(),
             file.getDateCreated(),
             file.getSize(),
             file.getUrl(),
            "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
             file.getDescription(),file.getMimeType())
     
    list.push(row);
  }
  var files = folder.getFolders();
  while (files.hasNext()){
    file = files.next();
    var row = []
    //row.push(file.getName(),file.getId(),file.getSize());
    row.push(file.getName(),
             file.getDateCreated(),
             file.getSize(),
             file.getUrl(),
            "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
             file.getDescription(),"folder")
     
    list.push(row);
  }
  
   sh.getRange(1,1,list.length,list[0].length).setValues(list);
  
}

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