【发布时间】:2021-12-03 19:03:20
【问题描述】:
我在这里找到了这个非常有用的脚本,用于在 GDrive 中按目录迭代地返回文件指标列表。我的问题是我想添加从给定域中排除电子邮件的列。例如,在fileItem.getEditors 上,我可能想要返回一个不包括“@mycompany.com”域中的编辑者的列表。
var childFolders = parent.getFolders();
var childFiles = parent.getFiles();
var allValues = []; // Added
while (childFiles.hasNext()){
var fileItem = childFiles.next();
data = [
parentName + "/" + fileItem.getName() + "/" + fileItem.getName(),
fileItem.getName(),
fileItem.getMimeType(),
fileItem.getUrl(),
fileItem.getAccess(Session.getActiveUser()),
fileItem.getSharingPermission(),
fileItem.isShareableByEditors(),
fileItem.getOwner().getEmail(),
fileItem.getEditors().map(function(e){return [e.getEmail(), e.getName()]}).join(","),
fileItem.getViewers().map(function(e){return [e.getEmail(), e.getName()]}).join(","),
];
allValues.push(data); // Added
}
sheet.getRange(sheet.getLastRow() + 1, 1, allValues.length, allValues[0].length).setValues(allValues); // Added
【问题讨论】:
-
fileItem.getEditors().filter(e => e.getDomain() != "@mycompany.com").map(e => { return [e.getEmail(), e.getName()] }).join(",") -
很棒的答案。这个问题是它似乎产生了一个包含@mycompany.com 的列表,我需要一个不包含它的列表。我无法适当地更改它。
-
也许你没有正确复制它,它应该有一个不等于你的域的域列表。无论如何,将 == 更改为 != 或将 != 更改为 == 应该可以解决问题
-
没错。这现在完美无缺。谢谢!
标签: javascript google-apps-script google-sheets google-drive-shared-drive