2014-11-21 88 views
1

我想使用谷歌应用程序脚本遍历谷歌驱动器中的文件夹的树结构。下面的代码列出了一些文件夹,但不是全部。你能否建议什么是钻取文件夹结构的最佳技术?我试图首先记录所有文件夹名称。谷歌应用程序脚本 - 迭代文件夹和子文件夹

谢谢。

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()); 
    } 

}