javascript
  • google-apps-script
  • google-drive-sdk
  • folder
  • 2017-04-13 3 views 0 likes 
    0

    나는 무대에서 학생이며 그 문제에 대한 버그입니다.Javascript, Google 부가 기능에서 특정 폴더의 모든 폴더 및 하위 폴더를 가져옵니다.

    var childFolders = DriveApp.getFolderById('ID').getFolders(); 
    

    또는

    var childFolders = DriveApp.getFolderById('ID').searchFolders("mimeType = 'application/vnd.google-apps.folder'"); 
    

    내가에만 폴더를 얻을 수 있지만 아닌 하위 폴더 : 난 exemple, 스프레드 시트에 대한 추가에 성공하지 않고 여러 솔루션을 시도하고 있었다. 이 명령으로 드라이브의 모든 폴더를 가질 수 있습니다 때

    이 이상하다 :

    var childFolders = DriveApp.getFolders(); 
    

    나는 폴더와 모든 하위 폴더를합니다. 자세히 드라이브의 7000 개 폴더 이상으로 제한 시간 인 6 분을 초과하므로 트리거를 사용해야합니다. 예 : 루트에있는 하나의 폴더는 500 개의 폴더 트리 폴더를 가질 수 있습니다.

    나는 그것에 대한 재귀 함수를 피하려고합니다. 재귀 적으로 결합하고 방아쇠가 ...! 내 스크립트는 폴더를 가져와야하며 모두 하위 폴더입니다. 첫 번째 폴더의 키가 시작됩니다.

    아이디어가 있다면 환영합니다.

    답변

    0

    나는 루트에서 시작하여 폴더 안에 하위 폴더를 가져올 수 있음을 보여주기 위해 시작하는 방법을 제공 할 것입니다.

    root > mainFolder > subFolder (the tree can go on) 
    

    Class Folder와 기준으로서 사용 Class FolderIterator.
    function getSubFolders() { 
    
        var folderArray=[]; 
        //displays all the folders assigns it to 'rootFolder' variable 
        var rootFolder = DriveApp.getFolderById('root').getFolders(); 
        //iterate over the root folders 
        while (rootFolder.hasNext()) { 
    
        var mainFolder = rootFolder.next(); 
        //assign the IDs of the root folders to an array 
        folderArray.push(mainFolder.getId()); 
        Logger.log(mainFolder.getName()); 
        } 
        //go inside one of the folders of your choice using the ID inside the array so we can use it to access the sub-folders 
        var newFolder = DriveApp.getFolderById(folderArray[4]).getFolders(); 
        //loop over the sub-folders inside if it has any 
        while (newFolder.hasNext()) { 
        //I had sub-folders inside so I accessed it and displayed their names 
        var subFolders = newFolder.next(); 
        Logger.log(subFolders.getName()); 
        } 
    
    } 
    

    그리고 있는지 충분히 내가 하위 폴더

    [17-04-14 15:28:45:256 HKT] Subfolder3 
    [17-04-14 15:28:45:257 HKT] Subfolder2 
    [17-04-14 15:28:45:259 HKT] Subfolder1 
    
    +0

    감사를 가지고, 나는 각 폴더에 대해 하나의 시트에 내 연구를 분할합니다. 나는 뿌리 내릴 길을 좋아한다. 너무 간단해서 드라이브의 ID를 얻고있었습니다. 도 사용할 수 있지만 길은 낫습니다. – Simon

    관련 문제