在Google云端硬盘中,您可以搜索“我不拥有”的文件。 我需要从Google Apps脚本访问此内容。 我已经尝试过DocsList.find(所有者中的“不是我”);这似乎是在驱动API中做到这一点的方式,但没有成功(事实上,这让我的文件与我作为所有者。)我也用我的电子邮件地址替换了我,有和没有引号,但再次没有成功。
有没有人知道这是否可行(除了通过迭代所有文件并手动检查getOwner()。getEmail(),这将花费太长时间,因为这个特定用户拥有大量文件。)
答案 0 :(得分:3)
我认为截至目前的更新答案是使用DriveApp.searchFiles(params)(https://developers.google.com/apps-script/reference/drive/drive-app#searchFiles(String))。 代码类似于:
// Log the name of every file in the user's Drive that shared with me
var files = DriveApp.searchFiles('sharedWithMe');
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
}
答案 1 :(得分:2)
此函数将返回与您共享的所有文件的数组。它使用Advanced Drive Service,必须为enabled before use。
/**
* Get array of files on user's Google Drive that have been shared with them.
* From https://stackoverflow.com/a/15947340/1677912
*
* @returns {Array} Array of file resources
* (see https://developers.google.com/drive/v2/reference/files#resource)
*/
function getSharedWithMe() {
var optionalArgs = {q:"sharedWithMe=true"};
var sharedFiles = Drive.Files.list(optionalArgs);
debugger; // pause in debugger
return sharedFiles.items;
}
使用Google Drive SDK“Explorer”,您可以在没有代码的情况下执行相同的操作。
请参阅使用此技术获取已删除文件列表的this previous answer。
您可以在Google文件:列表的Google云端硬盘SDK文档页面底部找到Files List API Explorer。有关搜索字词的信息,请参阅Search for files。出于我们的目的,我们只使用sharedWithMe
。
如果您将“字段”留空,您将获得有关共享文件的所有信息。您可以使用难以看到的减号标签展开和折叠结果。但限制输出是有帮助的。我用了items(id,selfLink,owners/displayName)
。这是看起来的样子: