https://github.com/tanabee/chown-drive-folder
- 実行中にエラーが発生しても継続するように変更
https://github.com/tanabee/chown-drive-folder
| var BASE_FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID'); | |
| var NEW_OWNER = PropertiesService.getScriptProperties().getProperty('NEW_OWNER'); | |
| var me = Session.getActiveUser().getEmail(); | |
| var hasError = false; | |
| function main() { | |
| var folder = DriveApp.getFolderById(BASE_FOLDER_ID); | |
| chownWithFolder(folder); | |
| if (hasError) { | |
| throw new Error('実行中にエラーが発生'); | |
| } | |
| } | |
| function chownWithFolder(folder) { | |
| chownIfNeeded(folder); | |
| var files = folder.searchFiles('"me" in owners'); | |
| while (files.hasNext()) { | |
| var file = files.next(); | |
| console.log('file: ', file.getName()); | |
| chownIfNeeded(file); | |
| } | |
| var folders = folder.getFolders(); | |
| while (folders.hasNext()) { | |
| var folder = folders.next(); | |
| console.log('folder: ', folder.getName()); | |
| chownWithFolder(folder); | |
| } | |
| } | |
| function chownIfNeeded(fileOrFolder) { | |
| if (fileOrFolder.getOwner().getEmail() === me) { | |
| console.log('***** chown to ', NEW_OWNER); | |
| try { | |
| fileOrFolder.setOwner(NEW_OWNER); | |
| } catch(e) { | |
| console.error(e); | |
| hasError = true; | |
| } | |
| } | |
| } |