Apps Script lets you iterate over all files in a Drive folder using DriveApp.getFolderById() and .getFiles(). This is useful for generating file inventories, auditing contents, or writing file metadata back to a Google Sheet.
Listing All Files in a Folder
function listFilesInFolder ( ) {
var folder = DriveApp . getFolderById ( "YOUR_FOLDER_ID" ) ;
var files = folder . getFiles ( ) ;
while ( files . hasNext ( ) ) {
var file = files . next ( ) ;
Logger . log ( file . getName ( ) + " | " + file . getMimeType ( ) + " | " + file . getDateCreated ( ) ) ;
}
}
Writing File List to a Sheet
This example scans the North - Sales Reports folder and writes a file inventory to a new sheet tab:
function exportFileInventoryToSheet ( ) {
var folder = DriveApp . getFolderById ( "YOUR_NORTH_FOLDER_ID" ) ;
var files = folder . getFiles ( ) ;
var ss = SpreadsheetApp . getActiveSpreadsheet ( ) ;
var sheet = ss . getSheetByName ( "File Inventory" ) || ss . insertSheet ( "File Inventory" ) ;
sheet . clearContents ( ) ;
sheet . appendRow ( [ "File Name" , "Type" , "Size (bytes)" , "Created" , "URL" ] ) ;
while ( files . hasNext ( ) ) {
var file = files . next ( ) ;
sheet . appendRow ( [
file . getName ( ) ,
file . getMimeType ( ) ,
file . getSize ( ) ,
file . getDateCreated ( ) ,
file . getUrl ( )
] ) ;
}
Logger . log ( "Inventory written to sheet." ) ;
}
Listing Files Across All Region Subfolders
This iterates over each region subfolder under a parent and builds a combined inventory:
function listAllRegionFiles ( ) {
var parentFolder = DriveApp . getFolderById ( "YOUR_ROOT_FOLDER_ID" ) ;
var subfolders = parentFolder . getFolders ( ) ;
var ss = SpreadsheetApp . getActiveSpreadsheet ( ) ;
var sheet = ss . getSheetByName ( "All Files" ) || ss . insertSheet ( "All Files" ) ;
sheet . clearContents ( ) ;
sheet . appendRow ( [ "Region" , "File Name" , "Created" , "URL" ] ) ;
while ( subfolders . hasNext ( ) ) {
var subfolder = subfolders . next ( ) ;
var files = subfolder . getFiles ( ) ;
while ( files . hasNext ( ) ) {
var file = files . next ( ) ;
sheet . appendRow ( [
subfolder . getName ( ) ,
file . getName ( ) ,
file . getDateCreated ( ) ,
file . getUrl ( )
] ) ;
}
}
Logger . log ( "Done listing all regional files." ) ;
}
With the Acme Corp folder structure, this produces a consolidated view of every sales report across North, East, South, and West — sorted by region.
Filtering Files by Type
To list only PDFs or Google Sheets within a folder:
function listPDFsOnly ( ) {
var folder = DriveApp . getFolderById ( "YOUR_FOLDER_ID" ) ;
var files = folder . getFilesByType ( MimeType . PDF ) ;
while ( files . hasNext ( ) ) {
var file = files . next ( ) ;
Logger . log ( "PDF: " + file . getName ( ) ) ;
}
}
Common MIME types: MimeType.PDF, MimeType.GOOGLE_SHEETS, MimeType.GOOGLE_DOCS, MimeType.CSV.