Reputation: 1
I want to IMPORT a list of files and folders in a specific folder in a google sheet. In active cell of spreadsheet im using.
I am new to programming and i have managed to try following code, but it does nt seem to work so far. Can you check please?
function listFolderContents() {
var foldername = '14DWNgJloxIjw9zeE-0Q2u_k5wQflkMMC';
var folderlisting = 'listing of folder ' + foldername;
var folders = DriveApp.getFoldersByName(foldername)
var folder = folders.next();
var contents = folder.getFiles();
//var ss = SpreadsheetApp.create(folderlisting);
var cc = SpreadsheetApp.getCurrentCell();
// var sheet = ss.getActiveSheet();
var file;
var name;
var link;
var cc;
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
link = file.getUrl();
cc.push([name,link]);
}
};
Upvotes: 0
Views: 1339
Reputation: 64032
function youfunc() {
const folderid = '';
const folder = DriveApp.getFolderById(folderid);
const files = folder.getFiles();
var a = '';
while(files.hasNext()) {
let file = files.next();
a += `filename: ${file.getName()} fileid: ${file.getId()} filesize: ${file.getSize()}\n`;
}
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const rg = sh.getrange('A1').setValue(a)
}
Upvotes: 0
Reputation: 15308
For files AND folders ... https://docs.google.com/spreadsheets/d/13fHMrWR9OOWa045uJbkz67YoVkOG4Pg6ScvrRpE-WBc/copy
function listFilesAndFolders() {
var folderid = '18akqHAN7PSPMnG3h5HpCskQsMCv4TqCM'; // change FolderID
var sh = SpreadsheetApp.getActiveSheet();
sh.clear();
sh.appendRow(["parent","folder", "name", "update", "size", "URL", "ID", "description", "type"]);
try {
var parentFolder =DriveApp.getFolderById(folderid);
listFiles(parentFolder,parentFolder.getName())
listSubFolders(parentFolder,parentFolder.getName());
} catch (e) {
Logger.log(e.toString());
}
}
function listSubFolders(parentFolder,parent) {
var childFolders = parentFolder.getFolders();
while (childFolders.hasNext()) {
var childFolder = childFolders.next();
Logger.log("Fold : " + childFolder.getName());
listFiles(childFolder,parent)
listSubFolders(childFolder,parent + "|" + childFolder.getName());
}
}
function listFiles(fold,parent){
var sh = SpreadsheetApp.getActiveSheet();
var data = [];
var files = fold.getFiles();
while (files.hasNext()) {
var file = files.next();
data = [
parent,
fold.getName(),
file.getName(),
file.getLastUpdated(),
file.getSize(),
file.getUrl(),
file.getId(),
file.getDescription(),
file.getMimeType()
];
sh.appendRow(data);
}
}
Upvotes: 1