Google Диск: Удалить ПАПКИ старше 1 дня - PullRequest
1 голос
/ 16 июня 2019

Я ищу некоторую помощь с AppScript. Я хочу удалить любые ПАПКИ старше 1 дня.

Вот моя ситуация. У меня есть главная папка, содержащая папки с файлами

> Main Folder
 >> Folder 1
       >>> File 1
       >>> File 2
       >>> File n
 >> Folder 2
       >>> File 1
 >> Folder n

Я хочу автоматически удалить папку n старше 1 дня (и, очевидно, файлы в ней) Можно ли сделать это с помощью AppScript? Я знаю, что такой сценарий уже существует, но он работает только с файлами внутри папки

С наилучшими пожеланиями!

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

У меня другая проблема

Отвечающий от Алана работает хорошо, когда я выполняю скрипт, он работает, без проблем.

Я сделал триггер с помощью Google AppScript, но триггер создает ошибку 25 «Не удается найти элемент, соответствующий этому идентификатору. Возможно, вы не сможете получить доступ по адресу chkDateOfEveryFolder (код: 25)»

Спасибо

РЕДАКТИРОВАТЬ: parentFldr = DriveApp.getFolderById(parentFolderID); эта строка (25) является источником проблемы

РЕДАКТИРОВАТЬ 2: я удалил это условие

if (!parentFolderID) {
    parentFolderID = "Enter the folder ID to start the search";
  }

К этому

 parentFolderID = "Enter the folder ID to start the 

И триггеры теперь работают правильно

0 голосов
/ 16 июня 2019

Этот код помещает папку в корзину, если момент времени больше, чем число миллисекунд в дне с момента создания папки.

function chkDateOfEveryFolder(parentFolderID) {
  var d,dateCreated,diffInMS,folder,folders,
      msInTimePeriod,nmbrOfDaysToChkFor,oneDayMS,parentFldr;

  /* Either pass in the ID of the parent folder to the function or set
   * the parent folder ID in the code below
  */

  nmbrOfDaysToChkFor = 1;//Number of days to check for as being older than

  if (!parentFolderID) {
    parentFolderID = "Enter the folder ID to start the search";
  }

  oneDayMS = 24 * 60 * 60 * 1000;//number of milliseconds in one day

  if (nmbrOfDaysToChkFor > 1) {
    msInTimePeriod = oneDayMS * nmbrOfDaysToChkFor;
  } else {
    msInTimePeriod = oneDayMS;
  }

  d = new Date();

  parentFldr = DriveApp.getFolderById(parentFolderID);

  folders = parentFldr.getFolders();//Get all folders within the parent folder

  while (folders.hasNext()) {//Is there another folder in the folder iterator
    folder = folders.next();
    dateCreated = folder.getDateCreated();

    //Logger.log(folder.getName() + " - Date:" + dateCreated);

    diffInMS = d.getTime() - dateCreated.getTime();

    //Logger.log('diffInMS: ' + diffInMS)

    if (diffInMS > msInTimePeriod) {
      folder.setTrashed(true);
      //Logger.log('folder is trashed: ' + folder.isTrashed());
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...