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; | |
} | |
} | |
} |