2016-05-23 12 views
1

auflisten Ich versuche, ein Übersichtsblatt für alle Dateien in einem Ordner zu erstellen. Dies ist, was ich bisher habe, aber ich kann nicht herausfinden, wie man die Dateien in den Unterordnern von "folderid" auflistet. Irgendwelche Ideen würden sehr geschätzt werden.Ich muss alle Dateien in Unterordnern mit Google-Skript

//GLOBAL VARIABLES 
 

 
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; 
 

 
function onOpen() { 
 
    ss.getRange(1, 1, 100, 10).clear({contentsOnly: true}) 
 

 
    var id = "folderid"; 
 
    var arr = [["CAPITAL PROJECT", "URLs", "OWNER"]]; 
 

 
    var f = DriveApp.getFolderById(id).getFiles() 
 
    while (f.hasNext()) { 
 

 
     var file = f.next(); 
 
     var name = file.getName() 
 
     var url = file.getUrl() 
 
     var own = file.getOwner().getName() 
 

 
     arr.push([name, url, own]); 
 

 
     ss.getRange(1,1, arr.length, arr[0].length).setValues(arr); 
 
    } 
 

 
    ss.getRange(2,1, arr.length, arr[0].length).sort(1) 
 

 
    var second = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2") 
 
    second.activate() 
 
}

+0

das Konzept der Rekursion nachschlagen. –

Antwort

0

Sobald Sie den Hauptordner erhalten, können Sie die Unterordner bekommen. Wenn es mehrere Unterordner sind, werden Sie eine innere Schleife benötigen:

Ich habe diesen Code getestet und es funktioniert:

function getAndListFilesInFolder() { 
    var arr,f,file,folderName,subFolders,id,mainFolder,name,own,sh,thisSubFolder,url; 

    sh = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; 
    sh.getRange(1, 1, 100, 10).clear({contentsOnly: true}) 

    id = "Put_Your_FolderID_Here"; 
    arr = [["CAPITAL PROJECT", "URLs", "OWNER","FOLDER"]]; 

    mainFolder = DriveApp.getFolderById(id); 
    subFolders = mainFolder.getFolders(); 
    folderName = mainFolder.getName(); 

    f = mainFolder.getFiles(); 

    while (f.hasNext()) { 
    file = f.next(); 
    name = file.getName() 
    url = file.getUrl() 
    own = file.getOwner().getName() 

    arr.push([name, url, own, folderName]); 
    }; 

    while (subFolders.hasNext()) { 
    thisSubFolder = subFolders.next(); 
    f = thisSubFolder.getFiles(); 
    folderName = thisSubFolder.getName(); 

    while (f.hasNext()) { 
     file = f.next(); 
     name = file.getName() 
     url = file.getUrl() 
     own = file.getOwner().getName() 

     arr.push([name, url, own,folderName]); 
    }; 
    }; 

    sh.getRange(1,1, arr.length, arr[0].length).setValues(arr); 
    sh.getRange(2,1, arr.length, arr[0].length).sort(1); 


    //var second = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2") 
    //second.activate() 
} 
+0

Danke für die Hilfe. – Mickey

Verwandte Themen