Users over the past few years have been embedding URL's and links to other files in our Shared Drives. I would like to put together a script that will populate all the files that have embedded links to URLs and other files and output that to a spreadsheet. I would prefer a script that would help translate the file location to a folder path.
I have found this script but it only lists folders
/** * Google Apps Script - List all files & folders in a Google Drive folder, & write into a speadsheet. * - Main function 1: List all folders * - Main function 2: List all files & folders * * Hint: Set your folder ID first! You may copy the folder ID from the browser's address field. * The folder ID is everything after the 'folders/' portion of the URL. * * @version 1.0 * @see https://github.com/mesgarpour */ // TODO: Set folder ID var folderId = 'My folder ID'; // Main function 1: List all folders, & write into the current sheet. function listFolers(){ getFolderTree(folderId, false); }; // Main function 2: List all files & folders, & write into the current sheet. function listAll(){ getFolderTree(folderId, true); }; // ================= // Get Folder Tree function getFolderTree(folderId, listAll) { try { // Get folder by id var parentFolder = DriveApp.getFolderById(folderId); // Initialise the sheet var file, data, sheet = SpreadsheetApp.getActiveSheet(); sheet.clear(); sheet.appendRow(["Full Path", "Name", "Date", "URL", "Last Updated", "Description", "Size"]); // Get files and folders getChildFolders(parentFolder.getName(), parentFolder, data, sheet, listAll); } catch (e) { Logger.log(e.toString()); } }; // Get the list of files and folders and their metadata in recursive mode function getChildFolders(parentName, parent, data, sheet, listAll) { var childFolders = parent.getFolders(); // List folders inside the folder while (childFolders.hasNext()) { var childFolder = childFolders.next(); // Logger.log("Folder Name: " + childFolder.getName()); data = [ parentName + "/" + childFolder.getName(), childFolder.getName(), childFolder.getDateCreated(), childFolder.getUrl(), childFolder.getLastUpdated(), childFolder.getDescription(), childFolder.getSize() ]; // Write sheet.appendRow(data); // List files inside the folder var files = childFolder.getFiles(); while (listAll & files.hasNext()) { var childFile = files.next(); // Logger.log("File Name: " + childFile.getName()); data = [ parentName + "/" + childFolder.getName() + "/" + childFile.getName(), childFile.getName(), childFile.getDateCreated(), childFile.getUrl(), childFile.getLastUpdated(), childFile.getDescription(), childFile.getSize() ]; // Write sheet.appendRow(data); } // Recursive call of the subfolder getChildFolders(parentName + "/" + childFolder.getName(), childFolder, data, sheet, listAll); } };