如何解决Google App Script File 类方法 getOwner() 始终为 Google 共享云端硬盘文件返回 null
我正在尝试使用以下应用程序脚本提取文件详细信息。它适用于保存在我的驱动器中的所有文件或其他人与我共享的文件。对于共享驱动器文件,var owner = file.getowner()
始终返回 null
。除了 getowner()
之外,所有方法即使使用共享驱动器文件夹也能正常工作。如果我在这里做错了什么,请提出建议。
代码:
function list_all_files_inside_one_folder_without_subfolders(){
var sh = SpreadsheetApp.getActiveSheet();
var folder = DriveApp.getFolderById('MyFolderID'); // I change the folder ID here
var list = [];
list.push(['Name','ID','URL','Size','Upload Date','Owner']);
list_all_folders_of_folder(folder,list)
sh.getRange(1,1,list.length,list[0].length).setValues(list);
}
function list_all_folders_of_folder(folder,list){
var subfolder = folder.getFolders();
while (subfolder.hasNext()) {
folder = subfolder.next();
list_all_files_of_folder(folder,list)
}
}
function list_all_files_of_folder(folder,list){
var files = folder.getFiles()
while (files.hasNext()){
file = files.next();
var row = []
var owner = file.getowner()
Logger.log(file.getName())
Logger.log(owner)
row.push(file.getName(),file.getId(),file.getUrl(),file.getSize(),file.getLastUpdated(),owner.getName() )
list.push(row);
}
}
解决方法
这是一种预期,因为使用共享云端硬盘会将文件的所有权转移给整个组织(不是用户或电子邮件地址),并且文件所有权将从用户中删除。
我认为有一种解决方法可以实施,但需要直接调用 DriveAPI 来检查文件活动(谁创建了文件),但这远远超出了基本脚本编写或在 GAS 上使用高级工作区服务的范围。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。