Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getFiles() {
- //определяем лист 'Файлы' в активной книге
- const sh = SpreadsheetApp.getActive().getSheetByName('Файлы');
- //забираем из ячейки B1 ячейку с ссылками / ссылкой на папки
- const urls = sh.getRange("b1").getValue();
- //задаём пустой массив (наполним его информацией про файлы)
- let arr = [];
- //очищаем на листе 'файлы' диапазон А4:G
- sh.getRange("A4:G").clearContent();
- //задаём простую вложенную функцию - она переберёт файлы в заданной папке, если внутри папки будут другие папки - функция спустится в них
- const getFiles = (folder, arr) => {
- const files = folder.getFiles();
- //цикл, идёт пока файлы в папке не закончатся
- while (files.hasNext()) {
- //и наполняем этот массив данными про файлах из папки
- const file = files.next();
- const [type, name, url_file, ts_created, sharing_access, sharing_access_permission] = [
- file.getMimeType(), file.getName(), file.getUrl(), file.getDateCreated(), file.getSharingAccess(), file.getSharingPermission()];
- arr.push([name, url_file, folder.getName(), folder.getUrl(), type, ts_created, sharing_access, sharing_access_permission])
- }
- const folders = folder.getFolders();
- while (folders.hasNext()) {
- const folder = folders.next();
- getFiles(folder, arr)
- }
- }
- //делим нашу ячейку с ссылками по "," и получаем несколько ссылок
- //или одну, если она была одна
- urls.split(",").forEach(url => {
- //обходим каждую ссылку в цикле - собираем информацию про файлы - наполняем наш массив
- const folder = DriveApp.getFolderById(url.match(/[-\w]{25,}/));
- getFiles(folder, arr);
- })
- //вставлям массив на лист;
- sh.getRange(sh.getLastRow() + 1, 1, arr.length, arr[0].length).setValues(arr);
- SpreadsheetApp.flush();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement