Skip to content

Instantly share code, notes, and snippets.

@rawcreative
Last active March 17, 2025 21:16
Show Gist options
  • Save rawcreative/3e984c62937af6e78b3e6225fa9f6391 to your computer and use it in GitHub Desktop.
Save rawcreative/3e984c62937af6e78b3e6225fa9f6391 to your computer and use it in GitHub Desktop.
Recursively get filenames and links from Drive - AppScript
function getFilesFromDrive() {
var sheet = SpreadsheetApp.getActive().getSheetByName('SHEETNAME');
var folders = DriveApp.getFolderById('XXFOLDERIDXX');
sheet.clear();
sheet.appendRow(['Folder', 'Name', 'URL']);
var folder = folders.getFolders();
if (folder.hasNext()) {
processFolder(folder);
} else {
Browser.msgBox('Folder not found!');
}
function processFolder(folder) {
while (folder.hasNext()) {
var f = folder.next();
var contents = f.getFiles();
addFilesToSheet(contents, f);
var subFolder = f.getFolders();
processFolder(subFolder);
}
}
function addFilesToSheet(files, folder) {
var data;
var folderName = folder.getName();
var parentFolders = folder.getParents();
var parentFolder = 'Drive';
var parents = [];
while (parentFolders.hasNext()) {
var parent = parentFolders.next();
parents.unshift(parent.getName());
parentFolders = parent.getParents();
}
var pLen = parents.length;
for (i = 0; i < pLen; i++){
parentFolder = parentFolder + " // " + parents[i];
}
folderName = parentFolder + " // " + folderName;
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
sheet.appendRow([
folderName,
file.getName(),
file.getUrl()
]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment