Я хотел бы, чтобы мой скрипт мог отменить доступ ко всем папкам, подпапкам и файлам на моем Google Диске. Пока что он отменяет общий доступ только к определенным файлам, используя идентификатор папки. Помощь очень ценится
function RemoveEditors(){
var files = DriveApp.getFolderById("1uus-Cv3n1xxQbSyWakQwqp7vNtTJGnWe").getFiles();
while (files.hasNext()) {
var file = files.next()
var docs = DriveApp.getFileById(file.getId());
var users = docs.getEditors();
for (i in users) {
email = users[i].getEmail();
if (email != "") {
docs.removeEditor(email);
}
}
}




Пытаться:
function RemoveEditors(){
var files = DriveApp.getFiles();
while (files.hasNext()) {
var file = files.next()
var docs = DriveApp.getFileById(file.getId());
var users = docs.getEditors();
for (i in users) {
email = users[i].getEmail();
if (email != "") {
docs.removeEditor(email);
}
}
}
}
Использование получить файлы() позволит вам получить все файлы на диске, после чего вы сможете выполнить тот же процесс, что и раньше.
РЕДАКТИРОВАТЬ
Изучив вопрос, я заметил, что вы хотите удалить все разрешения, включая редактирование и просмотр, поэтому я обновляю код, чтобы просмотреть все файлы и папки и удалить разрешения на просмотр и редактирование, я оставляю старый код в качестве ссылки . Новый код:
function removePermissions(){
var files = DriveApp.getFiles();
var folders = DriveApp.getFolders();
while (files.hasNext()) {
var file = files.next()
var docs = DriveApp.getFileById(file.getId());
var editors = docs.getEditors();
var viewers = docs.getViewers();
var email;
for (i in editors) {
email = editors[i].getEmail();
if (email != "") {
docs.removeEditor(email);
}
}
for (i in viewers) {
email = viewers[i].getEmail();
if (email != "") {
docs.removeViewer(email);
}
}
}
while (folders.hasNext()) {
var folder = folders.next()
var docs = DriveApp.getFolderById(folder.getId());
var editors = docs.getEditors();
var viewers = docs.getViewers();
var email;
for (i in editors) {
email = editors[i].getEmail();
if (email != "") {
docs.removeEditor(email);
}
}
for (i in viewers) {
email = viewers[i].getEmail();
if (email != "") {
docs.removeViewer(email);
}
}
}
}
Большое спасибо, Альберто. Он работает идеально! Последний вопрос, что мне делать, чтобы удалить редакторы из папок? Сценарий удаляет все редакторы из каждого файла на моем диске Google, и я хотел бы сделать то же самое с существующими папками. Благодарим за помощь
Это будет тот же процесс, но с использованием getFolders() (Документация здесь) и removeEditor() из папки вместо файла (Документация здесь)
@KarenSmith забыл указать, используя getFolders() вместо getFiles(), просто хочу быть совершенно ясным
Прекрасно работает. Большое спасибо
Вы можете опубликовать код в своем вопросе. Это было бы лучше.