Last active
April 6, 2022 03:16
-
-
Save rapartipoorna/c4237ae1d8bf7ec98509c6221028ad41 to your computer and use it in GitHub Desktop.
[ Apps script ] Creates folders according files and script will move files into created folders. for enabling trigger run trigger.gs file which is added to this gist
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function main(){ | |
| var q = "mimeType='application/vnd.google-apps.spreadsheet' or mimeType='application/vnd.google-apps.presentation' or mimeType='application/vnd.google-apps.document'" | |
| var files = DriveApp.searchFiles(q) | |
| while (files.hasNext()) { | |
| var file = files.next(); | |
| var filename = file.getName(); | |
| if(filename.toString().split('_').lastIndexOf('PC')!=-1){ | |
| var folder = getOrCreateFolder("Poorna") | |
| file.makeCopy(folder) | |
| } | |
| if(filename.toString().split('_').lastIndexOf('AK')!=-1){ | |
| var folder = getOrCreateFolder("Anil") | |
| file.makeCopy(folder) | |
| // file.moveTo(folder) | |
| } | |
| if(filename.toString().split('_').lastIndexOf('MG')!=-1){ | |
| var folder = getOrCreateFolder("Mounika") | |
| file.makeCopy(folder) | |
| // file.moveTo(folder) | |
| } | |
| if(filename.toString().split('_').lastIndexOf('SS')!=-1){ | |
| var folder = getOrCreateFolder("Saketh") | |
| file.makeCopy(folder) | |
| // file.moveTo(folder) | |
| } | |
| } | |
| } | |
| function getOrCreateSubFolder(baseFolder,folderArray) { | |
| if (folderArray.length == 0) { | |
| return baseFolder; | |
| } | |
| var nextFolderName = folderArray.shift(); | |
| var nextFolder = null; | |
| var folders = baseFolder.getFolders(); | |
| while (folders.hasNext()) { | |
| var folder = folders.next(); | |
| if (folder.getName() == nextFolderName) { | |
| nextFolder = folder; | |
| break; | |
| } | |
| } | |
| if (nextFolder == null) { | |
| // Folder does not exist - create it. | |
| nextFolder = baseFolder.createFolder(nextFolderName); | |
| } | |
| return getOrCreateSubFolder(nextFolder,folderArray); | |
| } | |
| function getFolderByPath(path) { | |
| var parts = path.split("/"); | |
| if (parts[0] == '') parts.shift(); // Did path start at root, '/'? | |
| var folder = DriveApp.getRootFolder(); | |
| for (var i = 0; i < parts.length; i++) { | |
| var result = folder.getFoldersByName(parts[i]); | |
| if (result.hasNext()) { | |
| folder = result.next(); | |
| } else { | |
| throw new Error( "folder not found." ); | |
| } | |
| } | |
| return folder; | |
| } | |
| /** | |
| * Returns the GDrive folder with the given name or creates it if not existing. | |
| */ | |
| function getOrCreateFolder(folderName) { | |
| var folder; | |
| try { | |
| folder = getFolderByPath(folderName); | |
| } catch(e) { | |
| var folderArray = folderName.split("/"); | |
| folder = getOrCreateSubFolder(DriveApp.getRootFolder(), folderArray); | |
| } | |
| return folder; | |
| } | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function Enabletrigger() { | |
| const RUN_AT_HOUR = 9; | |
| const enableDriveWatch = () => { | |
| const triggerName = "main" | |
| const [trigger = null] = ScriptApp.getProjectTriggers().filter((t) => t.getHandlerFunction() === triggerName); | |
| if (trigger === null) { | |
| ScriptApp.newTrigger(triggerName).timeBased().everyDays(1).atHour(RUN_AT_HOUR).create(); | |
| } | |
| }; | |
| enableDriveWatch() | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment