Skip to content

Instantly share code, notes, and snippets.

@kuro1981
Last active July 16, 2019 08:54
Show Gist options
  • Save kuro1981/fd2caa93e30a44f0c2034001d693251f to your computer and use it in GitHub Desktop.
Save kuro1981/fd2caa93e30a44f0c2034001d693251f to your computer and use it in GitHub Desktop.

Revisions

  1. kuro1981 revised this gist Jul 16, 2019. No changes.
  2. kuro1981 revised this gist Jul 16, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion CreatFolderRecusive.ts
    Original file line number Diff line number Diff line change
    @@ -23,7 +23,7 @@ function createFolderUnderLevel(parentFolder:GoogleAppsScript.Drive.Folder, laye


    function create() {
    var aaalist = ["asad", "aaaa", "asda"];
    var aaalist = ["asad", "aaaa", "asda"]; // 作成したい再帰フォルダはArrayでつっこむ
    var teamDrive = DriveApp.getFolderById(DriveFolderRootId);
    var folderId = CreatFolderRecusive(teamDrive, layerdFolderName, 0);
    Logger.log(folderId)
  3. kuro1981 created this gist Jul 16, 2019.
    30 changes: 30 additions & 0 deletions CreatFolderRecusive.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    var DriveFolderRootId = "XXXXXXXXXXXXXX"; // 自身の環境にあわせて設定

    function CreatFolderRecusive(parentFolder:GoogleAppsScript.Drive.Folder, layerdFolderName:Array<string>, nestidx:number=0) {
    var targetFolder = parentFolder.getFoldersByName(layerdFolderName[nestidx]);
    if (layerdFolderName.length <= nestidx) {
    return parentFolder.getId();
    }
    if (targetFolder.hasNext()) {
    return CreatFolderRecusive(targetFolder.next(), layerdFolderName, nestidx + 1 );
    } else {
    return createFolderUnderLevel(parentFolder, layerdFolderName.slice(nestidx));
    }
    }

    function createFolderUnderLevel(parentFolder:GoogleAppsScript.Drive.Folder, layerdFolderName:Array<string>) {
    Logger.log(layerdFolderName);
    var folder = parentFolder
    layerdFolderName.forEach(folderName => {
    folder = folder.createFolder(folderName);
    });
    return folder.getId();
    }


    function create() {
    var aaalist = ["asad", "aaaa", "asda"];
    var teamDrive = DriveApp.getFolderById(DriveFolderRootId);
    var folderId = CreatFolderRecusive(teamDrive, layerdFolderName, 0);
    Logger.log(folderId)
    }