Perl Requires Chilkat v11.0.0+
Perl
SharePoint Get Files in Root Folder
See more SharePoint Examples
Gets the list of files that exist in the root folder.Chilkat Perl Downloads
use chilkat();
$success = 0;
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = chilkat::CkHttp->new();
# --------------------------------------------------------------------------------------------------------
# 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 = chilkat::CkJsonObject->new();
$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->put_AuthToken($jsonOAuthCC->emit());
# --------------------------------------------------------------------------------------------------------
# Indicate that we want a JSON reply
$http->put_Accept("application/json;odata=verbose");
$http->SetUrlVar("sharepoint_hostname","example.sharepoint.com");
$sbJson = chilkat::CkStringBuilder->new();
$success = $http->QuickGetSb("https://graph.microsoft.com/v1.0/sites/SITE_ID/drive/root/children",$sbJson);
if ($success == 0) {
print $http->lastErrorText() . "\r\n";
exit;
}
$json = chilkat::CkJsonObject->new();
$json->LoadSb($sbJson);
# Iterate over the results and get each file's name, size, and last-modified date/time.
$numFiles = $json->SizeOfArray("d.results");
print "Number of Files in the SharePoint root folder = " . $numFiles . "\r\n";
$i = 0;
while ($i < $numFiles) {
$json->put_I($i);
$filename = $json->stringOf("d.results[i].Name");
$fileRelativeUri = $json->stringOf("d.results[i].ServerRelativeUrl");
$fileSize = $json->IntOf("d.results[i].Length");
print ($i + 1) . ": " . $filename . "\r\n";
print " Relative URI: " . $fileRelativeUri . "\r\n";
print " Size in Bytes: " . $fileSize . "\r\n";
$i = $i + 1;
}
# The output of this program when I tested it: