tôi có mã này để xóa các file trùng lặp nhưng nó không hoạt động như mong muốn, Đó là trên một bảng tính và bạn đi vào các công cụ và click vào quản lý kịch bản và cung cấp cho bạn ba nútGoogle Drive file trùng lặp
StartProcess
dấu bản sao
deleteDuplicates
Người đầu tiên truy xuất các tệp, tệp thứ hai sẽ chuyển các tệp trùng lặp bằng màu đỏ nhạt và tệp thứ ba được cho là xóa chúng và biến chúng thành Đỏ, mặc dù những gì nó đang làm là biến chúng thành màu vàng và tôi không thể tìm thấy sai lầm, xin vui lòng ai đó giúp tôi
function startProcess(){
PropertiesService.getScriptProperties().deleteAllProperties();
try{
ScriptApp.deleteTrigger(ScriptApp.getProjectTriggers()[0]);
}catch(e){}
var sh = SpreadsheetApp.getActiveSheet();
sh.getDataRange().clear();
sh.getRange(1,1,1,4).setValues([['fileName (logged @'+Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'MMM-dd-yyyy HH:mm')+')','fileSize','parent folders tree','fileID']]);
var trig = ScriptApp.newTrigger('getDriveFilesList_').timeBased().everyMinutes(5).create();
Logger.log(trig.getUniqueId()+' '+trig.getHandlerFunction());
getDriveFilesList_();
}
function getDriveFilesList_(){
var content = [];
var startTime = new Date().getTime();
var sh = SpreadsheetApp.getActiveSheet();
if(! PropertiesService.getScriptProperties().getProperty('numberOfFiles')){
PropertiesService.getScriptProperties().setProperty('numberOfFiles',0);
}
var numberOfFiles = Number(PropertiesService.getScriptProperties().getProperty('numberOfFiles'));
Logger.log(numberOfFiles);
var max = numberOfFiles+10000;
if(! PropertiesService.getScriptProperties().getProperty('continuationToken')){
var files = DriveApp.getFiles();
// var files = DriveApp.getFolderById('0B3qSFd_____MTFZMDQ').getFiles();// use this line and comment the above if you want to process a single folder
// use your chozen folder ID of course (available from the browser url , the part after "https://drive.google.com/?authuser=0#folders/")
}else{
var files = DriveApp.continueFileIterator(PropertiesService.getScriptProperties().getProperty('continuationToken'))
}
while(files.hasNext() && numberOfFiles<(max)){
var file = files.next()
if(file.getSize()>0){
numberOfFiles++;
var folder = '(shared)';
if(file.getParents().hasNext()){folder = getTree_(file)}
content.push([file.getName(),file.getSize(),folder,file.getId()])
}
if(new Date().getTime()-startTime > 250000){break};
}
sh.getRange(sh.getLastRow()+1,1,content.length,content[0].length).setValues(content);
if(!files.hasNext()){ScriptApp.deleteTrigger(ScriptApp.getProjectTriggers()[0]);Logger.log('done !'); sh.getRange(sh.getLastRow()+1,1).setValue('All files processed ('+numberOfFiles+' found)')};
var continuationToken = files.getContinuationToken()
PropertiesService.getScriptProperties().setProperty('numberOfFiles',numberOfFiles);
PropertiesService.getScriptProperties().setProperty('continuationToken',continuationToken);
}
function markDuplicates(){
handleDuplicates_(false)
}
function trashDuplicates(){
handleDuplicates_(true)
}
function handleDuplicates_(trash){
var sh = SpreadsheetApp.getActiveSheet();
sh.setFrozenRows(1);
sh.sort(1);
var data = sh.getDataRange().getValues()
var headers = data.shift()
var lastComment = data.pop();
var toDelete = [];
var item = data[0];
for(var n=1 ; n<data.length; n++){
if(data[n][0]==item[0] && data[n][1]==item[1]){
toDelete.push('delete '+ n);
}
item=data[n];
}
var marker = sh.getRange(2,1,data.length,1).getBackgrounds();
for(var n in data){
if(!trash){marker.push(['#FFF'])};
if(toDelete.indexOf('delete '+n)>-1 && !trash){
marker[n][0] = '#F99';
}
if(toDelete.indexOf('delete '+n)>-1 && trash){
if(marker[n][0]==='#ff9999'){
try{
DriveApp.getFileById(data[n][3]).setTrashed(trash);
marker[n][0] = '#F33';
}catch(err){Logger.log(err)}
}else{
marker[n][0] = '#FF9'; 3
}
}
}
sh.getRange(2,1,marker.length,1).setBackgrounds(marker);
}
function getTree_(file){
var tree = [];
var folderP = file.getParents()
while (folderP.hasNext()){
var folder = folderP.next();
folderP = folder.getParents();
tree.push(folder.getName());
}
return tree.reverse().join('/');
}
Chia sẻ bảng tính bạn đang làm việc. Cảm ơn – KRR
Đây là liên kết tạo một bản sao để nó có thể hoạt động trên ổ đĩa của bạn https://docs.google.com/spreadsheet/ccc?key=0Aj0cW5YX5rvcdHBHZXRmUGc5WWtMZTUzWndjTHhUX0E&usp=sharing –