2014-11-21 2 views
1

Я хочу выполнить итерацию по древовидной структуре папки на Google Диске с помощью скрипта Google Apps. В приведенном ниже коде перечислены некоторые из папок, но не все. Можете ли вы посоветовать, что лучше всего подходит для разворачивания структуры папок? Сначала я пытаюсь записать все имена папок.Скрипт Google apps - итерация папки и подпапки

спасибо.

function test() { 
listSubfolders(DriveApp.getFolderById('FOLDER_ID')); 
} 

function listSubfolders(parentFolder) { 
    var childFolders = parentFolder.getFolders(); 

while(childFolders.hasNext()) { 
    Logger.log(childFolders.next().getName()); 
    listSubfolders(childFolders.next()); 

} 


} 

ответ

5

Чтобы получить доступ к подкаталоги, вы можете сделать таким образом,

function getSubFolders(parent) { 
    parent = parent.getId(); 
    var childFolder = DriveApp.getFolderById(parent).getFolders(); 
    while(childFolder.hasNext()) { 
    var child = childFolder.next(); 
    Logger.log(child.getName()); 
    getSubFolders(child); 
    } 
    return; 
} 

function listFolders() { 
    var parentFolder = DriveApp.getFolderById("0B1n6YLYwFmK_dUpzRWhDRXNwdWc"); 
    var childFolders = parentFolder.getFolders(); 
    while(childFolders.hasNext()) { 
    var child = childFolders.next(); 
    Logger.log(child.getName()); 
    getSubFolders(child); 
    } 
} 
0

Это должно сделать трюк:

function start() { 
folder = DriveApp.getFolderById("0B_5HSTQXtXmsOHBzcnc2dTlkRFU") 
listFolders(folder) 
} 

function listFolders(folder) { 
    //starting point, we come here from start() or from the bottom of this function 



    //check the name 
    var name = folder.getName(); 

    if (name.match("TITL")) { 
    folder.addEditor("[email protected]"); 
    } 

    //now see if this folder has subfolders 
    var subfolders = folder.getFolders(); 

    //if it has, we call this function again 
    while (subfolders.hasNext()) {  
    listFolders(subfolders.next()); 
    } 

} 
Смежные вопросы