// replace Guitar_Score below with the folder for which you want a listing with all subfolders function listFolderContents() { var foldername = 'Guitar_Score'; // file with this name will be saved in your goolge files var folderlisting = 'listing of folder ' + foldername; var ss = SpreadsheetApp.create(folderlisting); var sheet = ss.getActiveSheet(); var folders = DriveApp.getFoldersByName(foldername) var folder = folders.next(); //listFilesInFolder(folder, sheet); traverseFolder(folder, sheet); }; function traverseFolder(folder, sheet) { listFilesInFolder(folder, sheet); var subFolders = folder.getFolders(); while (subFolders.hasNext()) { traverseFolder(subFolders.next(), sheet); } } function listFilesInFolder(folder, sheet) { var foldername = folder.getName(); var contents = folder.getFiles(); sheet.appendRow( ['...', foldername] ); while(contents.hasNext()) { var file = contents.next(); var name = file.getName(); var link = file.getUrl(); sheet.appendRow( [name, link] ); } }
Список имен вложенных папок и ссылок на файлы в листах Google - скрипт
Я пытаюсь получить список ссылок на файлы в папках и подпапках, который хранится в Google Диске. Это должно выглядеть примерно так:
Я довольно долго гуглял и читал форумы, но мне удалось найти только несколько примеров сценариев, и не все из них работают. Я нашел один скрипт, который не так уж плох, так как он приносит список файлов со ссылками в одной папке. но я хотел бы получить список файлов со ссылками в подпапках. В идеале все ссылки на папки и имена элементов должны быть перечислены в одной ячейке с разделителем «|». один из лучших примеров сценариев, которые я нашел до сих пор:
function listFilesInFolder(folderName) { var sheet = SpreadsheetApp.getActiveSheet(); sheet.appendRow(["Name", "File-Id"]); //change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder) var folder = DriveApp.getFolderById("0ByQ9Zp2ge-pzSjhKdHVWWk0wNnc"); var contents = folder.getFiles(); var cnt = 0; var file; while (contents.hasNext()) { var file = contents.next(); cnt++; data = [ file.getName(), file.getId(), ]; sheet.appendRow(data); }; };
и это приносит результаты в листе
Было бы очень признательно, если бы кто-нибудь мог помочь получить лучшую версию этого кода.
ps Есть также несколько больших сценариев, которые мне понадобятся в будущем, за которые я готов заплатить. пожалуйста, напишите мне, если вы заинтересованы.
1 ответ на вопрос
Похожие вопросы
-
3
Как я могу "инвертировать" структуру каталогов?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
7
Запустить синергетический клиент при загрузке в Mac OS X
-
-
4
Как синхронизировать скрипты GreaseMonkey между компьютерами?
-
1
Могу ли я написать скрипт, который будет автоматически переключать пользователей?
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием
-
3
Сбой FTP «PUT» на виртуальной машине, но не на хост-ПК: 504 Команда не реализована для этого парамет...
-
1
ksh эквивалент perl $! причина ошибки
-
2
Ошибка индекса вне диапазона в сценарии VBScript
-
5
crontab разбудить osx из сна