Search code examples
google-apps-scriptcountgoogle-drive-shared-drive

Count Files in a TeamDrive


I am trying to create a script to count the files in a TeamDrive. Does anyone have a simple codeexample for me. This is my current code - it runs but does not count files.

function myTeamDrives() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss.clear();
  var folders = Drive.Teamdrives.list({maxResults:100});
  var row = 0

  for (var i = 0; i < folders.items.length ; i++) {
    var folder = folders.items[i];
    var fID = folders.items[i].getId();

    var xx = DriveApp.getFolderById(fID).getFiles();
    var anzF = 0
    
    while (xx.hasNext()) {
      var file = xx.next();
      anzF = anzF + 1
    }    
        
    row = row + 1 
    ss.getRange(row, 1).setValue(folder.name);
    ss.getRange(row, 2).setValue(anzF);
    ss.getRange(row, 3).setValue(fID);
  }
}


Solution

  • Try this:

    function getFnF(folder) {
      var folder= folder || DriveApp.getFolderById('FolderId');
      var files=folder.getFiles();
      while(files.hasNext()) {
        var file=files.next();
        n++;
      }
      var subfolders=folder.getFolders() 
      while(subfolders.hasNext()) {
        var subfolder=subfolders.next();
        getFnF(subfolder);
      }
    }
    

    To test it try this:

    var n=0;//global
    
    function testgetFnf() {
      n=0;
      getFnF();
      Logger.log(n);
    }
    

    You can recover the number of files by viewing logs