Искать только те файлы, которые принадлежат мне - PullRequest
1 голос
/ 04 октября 2019

Мне нужно, чтобы скрипт распознал, что он должен искать только те файлы, которые я создал, потому что мне не разрешено удалять файлы других людей в этой папке на Google Диске.

var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');

Признаюсь, я пыталсяподстраиваться под себя, но каждый раз дает ошибку, что-то всегда идет не так. Эта форма была моей последней попыткой, которая также провалилась:

var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '" and "me@gmail.com" in owners ');

1 Ответ

1 голос
/ 04 октября 2019

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

function getMyFilesFromFolder() {
  var myFolderId = "FolderId";
  var files = DriveApp.getFolderById(myFolderId).getFilesByType(MimeType.GOOGLE_SHEETS);
  var myFiles=[];
  while(files.hasNext()) {
    var file = files.next();
    if(file.getOwner().getEmail()==Session.getActiveUser().getEmail()) {
      myFiles.push({name:file.getName(),id:file.getId(),owner:file.getOwner().getEmail(),currentuser:Session.getActiveUser().getEmail()});
      Logger.log(Utilities.formatString('Name: %s Id: %s Owner: %s CurrentUser: %s', file.getName(),file.getId(),file.getOwner().getEmail(),Session.getActiveUser().getEmail()));
    }
  }
}

Дайте мне знать, работает ли он для вас. Это должно быть только ведение журнала принадлежащих вам файлов. Таким образом, адрес электронной почты текущего пользователя и адрес электронной почты владельца должны совпадать.

Я также проверил это в общей папке, и она работает. Я не хотел ничего удалять, поэтому изменил несколько вещей, и я просто искал Google Sheets.

function getOldFileIDs() {
  // Old date is 3 Hours
  var oldDate = new Date().getTime() - 3600*1000*3;
  var cutOffDate = new Date(oldDate).toISOString();

  // Get folderID using the URL on google drive
  var folder = DriveApp.getFolderById('1iJTAdlhCM13c1CB5xMAjtLZlkaPMIlPb');
  var files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);//Just looking for Google Sheets

  var obj = [];
  while (files.hasNext()) {
    var file = files.next();
    obj.push({name: file.getName(),id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()}); // Modified
  }
  obj.sort(function(a, b) {
    var a= new Date(a.date).valueOf();
    var b= new Date(b.date).valueOf();
    return b-a;
  });
  //obj.shift();//I wanted to log all of them
  return obj; // Modified
};

function logFiles() {
  var email = Session.getActiveUser().getEmail();// Added
  var obj = getOldFileIDs(); // Modified
  obj.forEach(function(e) { // Modified
    if (e.owner == email) { // Added
      //Drive.Files.remove(e.id); // Modified
      Logger.log('FileName: %s,Owner Email: %s',e.name,e.owner);
    }
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...