Lista de nomes de subpastas e links de arquivos em folhas do google - script

0

Estou tentando obter uma lista do Google Plan de links de arquivos em pastas e subpastas que estou mantendo no Google Drive. Deve ser algo como isto:

Euestavapesquisandoelendofórunsporumbomtempoagora,masconseguiencontrarapenasalgunsexemplosdescriptenemtodoselesestãofuncionando.Euencontreiumscriptquenãoétãoruim,poistrazumalistadearquivoscomlinksemumapasta.maseugostariadeobterumalistadearquivoscomlinksemsubpastas.Idealmente,todososlinksdepastasenomesdeitensseriamlistadosemumacélulacomumseparador"|". um dos melhores exemplos de script que encontrei até agora é:

function listFilesInFolder(folderName) {

var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["Name", "File-Id"]);


//change the folder ID below to reflect your folder's ID (look in the            URL when you're in your folder)
var folder = DriveApp.getFolderById("0ByQ9Zp2ge-pzSjhKdHVWWk0wNnc");
var contents = folder.getFiles();

var cnt = 0;
var file;

while (contents.hasNext()) {
    var file = contents.next();
    cnt++;

       data = [
            file.getName(),
            file.getId(),
        ];

        sheet.appendRow(data);
    };
};

e traz resultados em uma folha

Seria muito apreciado se alguém pudesse ajudar a obter uma versão melhor deste código.

p.s.Há também alguns scripts maiores que eu precisarei em um futuro que eu estou disposto a pagar. por favor me mensagem se você estiver interessado.

    
por Josh 01.07.2016 / 02:19

1 resposta

0

// replace Guitar_Score below with the folder for which you want a listing with all subfolders
function listFolderContents() {
  var foldername = 'Guitar_Score';
  // file with this name will be saved in your goolge files
  var folderlisting = 'listing of folder ' + foldername;  
  var ss = SpreadsheetApp.create(folderlisting);
  var sheet = ss.getActiveSheet();
  var folders = DriveApp.getFoldersByName(foldername)
  var folder = folders.next();                  
  //listFilesInFolder(folder, sheet);
  traverseFolder(folder, sheet);
};

function traverseFolder(folder, sheet) { 
  listFilesInFolder(folder, sheet);  
  var subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    traverseFolder(subFolders.next(), sheet);
  }
}

function listFilesInFolder(folder, sheet) {
  var foldername = folder.getName();
  var contents = folder.getFiles();  
  sheet.appendRow( ['...', foldername] );    
  while(contents.hasNext()) {
    var file = contents.next();
    var name = file.getName();
    var link = file.getUrl();
    sheet.appendRow( [name, link] );     
  } 
}
    
por 04.11.2016 / 23:56