直接指定嵌套文件夹?

时间:2014-08-04 22:04:52

标签: google-apps-script

所以我使用此代码指定我想要的google驱动器中的文件夹,但我希望有更好的方法吗?

var folders = DriveApp.searchFolders("title contains '"+Values[3]+"' and 'jlfXPTjmRlS2dQf5SS3RaUWM....' in parents");
    while (folders.hasNext()) {
      var folder = folders.next();
      var folder = folder.getId();
      var subfolders = DriveApp.searchFolders("title contains '"+Values[4]+"' and '"+folder+"' in parents");
      while (subfolders.hasNext()) {
        var subfolder = subfolders.next(); // got My folder here!
        // *Actions*
}}

我想指定的文件夹嵌套为:

/共享文件夹(由id知道)/子文件夹(名称已知)/子文件夹(按名称称)

我的猜测是应该用DocsList.getFolder(路径)来完成,但是我无法让它工作。此外,我需要此代码与我共享基本文件夹的协作者兼容。

1 个答案:

答案 0 :(得分:4)

在这篇文章中看看Mogsdad的答案,我认为它应该对你有帮助:Migrating from DocsList to DriveApp?

代码转载如下,它不需要很多解释:使用path作为参数并获取一个文件夹对象作为返回。

 function getFolderByPath(path) { 
    var parts = path.split("/");    
    if (parts[0] == '') parts.shift(); // Did path start at root, '/'?

    var folder = DriveApp.getRootFolder();
    for (var i = 0; i < parts.length; i++) { 
      var result = folder.getFoldersByName(parts[i]); 
      if (result.hasNext()) {
        folder = result.next(); 
       } else { 
       return null;
       } 
     } 
    return folder;
  }