Автоматически удалять файлы с общего диска Google старше X дней?

Я пытаюсь удалить файлы и папки старше 10 дней на определенном общем диске (не на всем Google Диске).

Для этого я попытался объединить то, что читать здесь

Я попытался запустить приведенный ниже скрипт в скрипте приложения Google. при запуске скрипта я получаю эту ошибку

Syntax error: SyntaxError: Unexpected identifier line: 10 file: Code.gs

Я застрял с функцией getFolderById. Вот что в строке 10.


function deleteOldFiles() {
  var Folders = new Array(
    'YOUR-TEAM-DRIVE-ID' //you can find this in the team drive url
  );
  var DaysRetentionNumber = 15; //how many days old your files and folders must be before getting deleted?
  var RetentionPeriod = DaysRetentionNumber * 24 * 60 * 60 * 1000;

  Logger.clear();

  for each (var FolderID in Folders) {
    folder = DriveApp.getFolderById(FolderID);
    processFolder(folder);
  }

  function processFolder(folder){
    Logger.log('Folder: ' + folder.getName());
    var files = folder.getFiles();
    while (files.hasNext()) {
      var file = files.next();
      Logger.log('File: ' + file.getName());
      if (new Date() - file.getLastUpdated() > RetentionPeriod) {
        //file.setTrashed(true); //uncomment this line to put them in the trash
        //Drive.Files.remove(file.getId()); //uncomment this line to delete them immediately; CAREFUL!
        Logger.log('File '+ file.getName() + ' trashed');
      }
    }
    var subfolders = folder.getFolders();
    while (subfolders.hasNext()) {
      subfolder = subfolders.next();
      processFolder(subfolder);
    }
    checkEmptyFolder(folder);
  }

  function checkEmptyFolder(folder){
    if(!folder.getFiles().hasNext() && !folder.getFolders().hasNext()){
      Logger.log('Empty folder: '+ folder.getName());
      folder.setTrashed(true); // put them in the trash
    }
  }

  if(Logger.getLog() != '')
     MailApp.sendEmail('youremailaddresshere', 'Team Drive weekly cleanup report', Logger.getLog()); //get a log in your email so that you can see what will be deleted; try this before uncommenting the trash/delete lines!
}

Как я могу изменить этот сценарий, чтобы удалить все файлы общего диска старше 10 дней?

Я пробовал это тоже < /а>. но ничего не работало для общих дисков Google


person SOORAJ SR    schedule 04.04.2021    source источник
comment
попробуйте сделать file.list, чтобы убедиться, что у вас даже есть доступ к звукам этой папки, которых вы, возможно, не   -  person DaImTo    schedule 04.04.2021
comment
это общий диск. да, у меня есть доступ к этой папке.   -  person SOORAJ SR    schedule 04.04.2021
comment
Syntax error: SyntaxError: Unexpected identifier line: 11 file: Code.gs это ошибка, которую я получаю при сохранении кода   -  person SOORAJ SR    schedule 04.04.2021
comment
для каждого не используется в es6   -  person Cooper    schedule 04.04.2021


Ответы (1)


function delFilesInFolderOlderThanXday() {
  const folder=DriveApp.getFolderById('id');
  const files=folder.getFiles();
  const dt=new Date();
  const threshold=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-X).valueOf();
  while(files.hasNext()) {
    let file=files.next();
    let dtv=new Date(file.getLastUpdated()).valueOf();
    if(dtv<threshold) {
      Drive.Files.remove(file.getId(),{supportsAllDrives:true});
    }  
  }
}

Вам нужно будет включить Drive API, если вы хотите удалить. В противном случае вы можете поместить их в корзину с помощью DriveApp. Вам также нужно будет установить X.

person Cooper    schedule 04.04.2021