Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) SharePoint -- Get Files in Root FolderSee more SharePoint ExamplesGets the list of files that exist in the root folder.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, DtObj, JsonObject, CkDateTime; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; sbJson: HCkStringBuilder; success: Boolean; json: HCkJsonObject; numFiles: Integer; lastMod: HCkDateTime; dt: HCkDtObj; bLocal: Boolean; i: Integer; filename: PWideChar; fileRelativeUri: PWideChar; fileSize: Integer; sLastModified: PWideChar; begin // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // ------------------------------------------------------------------------- // The following comments apply to SharePoint Windows classic authentication. // ------------------------------------------------------------------------- // For example, imagine our SharePoint endpoint is https://xyzoffice.mycompany.com/ // The SHAREPOINT_NTLM_DOMAIN would be "mycompany.com" // The SHAREPOINT_HTTPS_DOMAIN would be "xyzoffice.mycompany.com" // Also, the SHAREPOINT_USERNAME would be just the name, not a full email address. // for example, "chilkat" instead of "chilkat@mycompany.com" http := CkHttp_Create(); // If SharePoint Windows classic authentication is used, then set the // Login, Password, LoginDomain, and NtlmAuth properties. CkHttp_putLogin(http,'SHAREPOINT_USERNAME'); CkHttp_putPassword(http,'SHAREPOINT_PASSWORD'); CkHttp_putLoginDomain(http,'SHAREPOINT_NTLM_DOMAIN'); CkHttp_putNtlmAuth(http,True); // ------------------------------------------------------------------------- // The more common case is to use SharePoint Online authentication (via the SPOIDCRL cookie). // If so, do not set Login, Password, LoginDomain, and NtlmAuth, and instead // establish the cookie as shown at SharePoint Online Authentication // ------------------------------------------------------------------------- // Indicate that we want a JSON reply CkHttp_putAccept(http,'application/json;odata=verbose'); CkHttp_putAcceptCharset(http,'utf-8'); // If your Sharepoint site is within a site collection, then use "https://SHAREPOINT_HTTPS_DOMAIN/sites/teamA/_api/web/GetFolderByServerRelativeUrl('/sites/teamA/')/Files" where "teamA" is the name of the site. sbJson := CkStringBuilder_Create(); success := CkHttp_QuickGetSb(http,'https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFolderByServerRelativeUrl(''/'')/Files',sbJson); if (success <> True) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; json := CkJsonObject_Create(); CkJsonObject_LoadSb(json,sbJson); // Iterate over the results and get each file's name, size, and last-modified date/time. numFiles := CkJsonObject_SizeOfArray(json,'d.results'); Memo1.Lines.Add('Number of Files in the SharePoint root folder = ' + IntToStr(numFiles)); lastMod := CkDateTime_Create(); bLocal := True; i := 0; while i < numFiles do begin CkJsonObject_putI(json,i); filename := CkJsonObject__stringOf(json,'d.results[i].Name'); fileRelativeUri := CkJsonObject__stringOf(json,'d.results[i].ServerRelativeUrl'); fileSize := CkJsonObject_IntOf(json,'d.results[i].Length'); sLastModified := CkJsonObject__stringOf(json,'d.results[i].TimeLastModified'); Memo1.Lines.Add(IntToStr(i + 1) + ': ' + filename); Memo1.Lines.Add(' Relative URI: ' + fileRelativeUri); Memo1.Lines.Add(' Size in Bytes: ' + IntToStr(fileSize)); // Show the last-modified date/time in the local timezone. CkDateTime_SetFromTimestamp(lastMod,sLastModified); dt := CkDateTime_GetDtObj(lastMod,bLocal); Memo1.Lines.Add(' Last-Modified: ' + IntToStr(CkDtObj_getDay(dt)) + '/' + IntToStr(CkDtObj_getMonth(dt)) + '/' + IntToStr(CkDtObj_getYear(dt)) + ' ' + IntToStr(CkDtObj_getHour(dt)) + ':' + IntToStr(CkDtObj_getMinute(dt))); CkDtObj_Dispose(dt); i := i + 1; end; // The output of this program when I tested it: // Number of Files in the SharePoint root folder = 5 // 1: Documentstester1.txt // Relative URI: /Documentstester1.txt // Size in Bytes: 17 // Last-Modified: 6/4/2017 11:31 // 2: Documents11_D42_Device_70_IP.xlsx // Relative URI: /Documents11_D42_Device_70_IP.xlsx // Size in Bytes: 17472 // Last-Modified: 6/4/2017 10:54 // 3: default.aspx // Relative URI: /default.aspx // Size in Bytes: 3960 // Last-Modified: 26/10/2015 20:47 // 4: DocumentsVCAC NEW Admin and RA bacgrounds.pptx // Relative URI: /DocumentsVCAC NEW Admin and RA bacgrounds.pptx // Size in Bytes: 11867024 // Last-Modified: 6/4/2017 10:51 // 5: DocumentsVCAC_Installer_Web_Sites_Installation.docx // Relative URI: /DocumentsVCAC_Installer_Web_Sites_Installation.docx // Size in Bytes: 529482 // Last-Modified: 6/4/2017 11:0 CkHttp_Dispose(http); CkStringBuilder_Dispose(sbJson); CkJsonObject_Dispose(json); CkDateTime_Dispose(lastMod); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.