-
-
Save CraftCanna/cb1afa38934285ba8b004534f0e6e1fa to your computer and use it in GitHub Desktop.
Remove Duplicates From GDrive Root
This file contains 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
/* | |
Gunar C. Gessner | |
@gunar 2016 | |
INSTALL: https://script.google.com/macros/s/AKfycbym7IaTORzJ7LQPcxMx1LV1SQEC6RVGv5tzLOgYS8iQe8XAJxM/exec | |
After installation, the script will, every 10 minutes, search for all files that have duplicates (shift+z) and remove them from the root directory ("My Drive"). | |
This Google Apps Script webapp aims to solve the problem that when transferring ownership of folders & | |
files to another account, duplicate files shown in "My Drive". | |
Original Google Drive Help forum issue: https://productforums.google.com/forum/#!topic/drive/Ldz7nvSXQ6w | |
*/ | |
'use strict' | |
function updateTriggers(triggerId) { | |
// Remove all project Triggers | |
var allTriggers = ScriptApp.getProjectTriggers(); | |
for (var i = 0; i < allTriggers.length; i++) { | |
ScriptApp.deleteTrigger(allTriggers[i]); | |
} | |
// Add single one | |
ScriptApp.newTrigger('removeDuplicatesFromRoot') | |
.timeBased() | |
.everyMinutes(10) | |
.create(); | |
} | |
function doGet() { | |
updateTriggers(); | |
return HtmlService.createHtmlOutput('Script successfully installed! It will remove duplicates every 10 minutes.'); | |
} | |
function removeDuplicatesFromRoot() { | |
Logger.clear(); | |
var rootFolder = DriveApp.getRootFolder(); | |
var files = rootFolder.getFiles(); | |
while (files.hasNext()) { | |
var file = files.next(); | |
var parents = file.getParents(); | |
var isInMyDrive = false; | |
var isSomewhereElse = false; | |
while (parents.hasNext()) { | |
var folder = parents.next(); | |
if (folder == 'My Drive') { isInMyDrive = true } | |
else { isSomewhereElse = true } | |
} | |
Logger.log('===' + file + ': ' + isInMyDrive + '/' + isSomewhereElse); | |
if (isInMyDrive && isSomewhereElse) { rootFolder.removeFile(file); } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment