查找和更改Google文件所有者

我希望能够检查共享的给定文件夹中是否有其他人放入的文件,然后获得这些文件的所有权。我已经尝试过了:

function changeUser() {
  
  var folderID = "<folder ID here>"
  var newUser = "<my email address>"
  
  var folder = DriveApp.getFolderById(folderID);
  var files = folder.getFiles();
  
  while (files.hasnext()) {
    var file = files.next();
      if(file.getOwner() <> "DriveUser") {
        file.setOwner(newUser);
      }
  }
}

我正在使用“ DriveUser”,因为当我运行Logger.log(file.getOwner())时,它就是它所说的用户;但我不确定这是正确的。

当我尝试运行此命令时,它告诉我IF语句行中有一个意外的标记'>'。嘿-我是新来的。无论如何,关于我如何进行这项工作的任何建议?

iCMS 回答:查找和更改Google文件所有者

我相信您的代码有两个问题:

  1. JavaScript使用!=表示“不等于”,而不是其他一些语言中使用的<>
  2. 您看到的DriveUser不是字符串值,而是Userdocumented here的实例。为了获得有意义的用户标识符,您需要调用此类的方法.getEmail()。然后,您可以将其与您自己的电子邮件地址进行比较。

所以更新后的代码如下:

var folderID = "..."
var newUser = "(an email address)"
  
var folder = DriveApp.getFolderById(folderID);
var files = folder.getFiles();
console.log(folder.getOwner())
  
while (files.hasNext()) {
  var file = files.next();
    if(file.getOwner().getEmail() != newUser) {
      file.setOwner(newUser);
    }
}

但是您将遇到第三个问题:仅当您将所有权从您转移到到另一个用户(即您拥有文件和{{ 1}}不是您的电子邮件地址)。 Apps Script代表您运行脚本,这意味着它将不会执行您无权手动执行的操作-只有文件的所有者可以将该所有权转让给另一个用户。如果您在不拥有的文件上运行脚本,则会得到措辞含糊的错误newUser

本文链接:https://www.f2er.com/2018786.html

大家都在问