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.
GoogleDrive上に再帰的にフォルダを作成するgsスクリプト(typescript)
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"]; // 作成したい再帰フォルダはArrayでつっこむ
var teamDrive = DriveApp.getFolderById(DriveFolderRootId);
var folderId = CreatFolderRecusive(teamDrive, layerdFolderName, 0);
Logger.log(folderId)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment