PowerShell Requires Chilkat v11.0.0+
PowerShell
SharePoint Get Files in Root Folder
See more SharePoint Examples
Gets the list of files that exist in the root folder.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = New-Object Chilkat.Http
# --------------------------------------------------------------------------------------------------------
# Provide the information needed for Chilkat to automatically fetch the OAuth2.0 access token as needed.
# To create your App Registration for SharePoint in Azure Entra ID,
# see How to Create SharePoint App Registration for OAuth 2.0 Client Credentials
$jsonOAuthCC = New-Object Chilkat.JsonObject
$jsonOAuthCC.UpdateString("client_id","CLIENT_ID")
$jsonOAuthCC.UpdateString("client_secret","SECRET_VALUE")
$jsonOAuthCC.UpdateString("scope","https://graph.microsoft.com/.default")
$jsonOAuthCC.UpdateString("token_endpoint","https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token")
$http.AuthToken = $jsonOAuthCC.Emit()
# --------------------------------------------------------------------------------------------------------
# Indicate that we want a JSON reply
$http.Accept = "application/json;odata=verbose"
$http.SetUrlVar("sharepoint_hostname","example.sharepoint.com")
$sbJson = New-Object Chilkat.StringBuilder
$success = $http.QuickGetSb("https://graph.microsoft.com/v1.0/sites/SITE_ID/drive/root/children",$sbJson)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
$json = New-Object Chilkat.JsonObject
$json.LoadSb($sbJson)
# Iterate over the results and get each file's name, size, and last-modified date/time.
$numFiles = $json.SizeOfArray("d.results")
$("Number of Files in the SharePoint root folder = " + $numFiles)
$i = 0
while ($i -lt $numFiles) {
$json.I = $i
$filename = $json.StringOf("d.results[i].Name")
$fileRelativeUri = $json.StringOf("d.results[i].ServerRelativeUrl")
$fileSize = $json.IntOf("d.results[i].Length")
$([string]$i + 1 + ": " + $filename)
$(" Relative URI: " + $fileRelativeUri)
$(" Size in Bytes: " + $fileSize)
$i = $i + 1
}
# The output of this program when I tested it: