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
(PureBasic) SharePoint -- Get File Metadata (File Size, Last-Modified Date/Time, etc.)See more SharePoint ExamplesDemonstrates how to get a file's metdata, which includes the file size, last-modified date/time, name, server relative URL, etc.
IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkDateTime.pb" IncludeFile "CkDtObj.pb" Procedure ChilkatExample() ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; If SharePoint Windows classic authentication is used, then set the ; Login, Password, LoginDomain, and NtlmAuth properties. CkHttp::setCkLogin(http, "SHAREPOINT_USERNAME") CkHttp::setCkPassword(http, "SHAREPOINT_PASSWORD") CkHttp::setCkLoginDomain(http, "SHAREPOINT_NTLM_DOMAIN") CkHttp::setCkNtlmAuth(http, 1) ; 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::setCkAccept(http, "application/json;odata=verbose") CkHttp::setCkAcceptCharset(http, "utf-8") url.s = "https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')" jsonReply.s = CkHttp::ckQuickGetStr(http,url) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) ProcedureReturn EndIf ; Examine the file's metadata in JSON format. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(json,jsonReply) CkJsonObject::setCkEmitCompact(json, 0) ; Make sure it was a success response, and that we really have metadata. ; If it was an error response, then the JSON is error information.. If CkHttp::ckLastStatus(http) <> 200 Debug CkJsonObject::ckEmit(json) Debug "Failed." CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf Debug CkJsonObject::ckEmit(json) Debug "--------" Debug "Server relative URL: " + CkJsonObject::ckStringOf(json,"d.ServerRelativeUrl") fileSize.i = CkJsonObject::ckIntOf(json,"d.Length") Debug "File Size = " + Str(fileSize) lastmod.i = CkDateTime::ckCreate() If lastmod.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkDateTime::ckSetFromTimestamp(lastmod,CkJsonObject::ckStringOf(json,"d.TimeLastModified")) ; Once we have the CkDateTime object, we can get the date/time in all sorts of formats: ; Get as a RFC822 GMT string: bLocalTime.i = 0 Debug CkDateTime::ckGetAsRfc822(lastmod,bLocalTime) ; Get as an RFC822 string in the local timezone. ; (remember, the daylight savings that existed at the given time in the past is applied) bLocalTime = 1 Debug CkDateTime::ckGetAsRfc822(lastmod,bLocalTime) ; Get as a 32-bit UNIX time (local or GMT..) ; The Unix time is number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). unixTime.i = CkDateTime::ckGetAsUnixTime(lastmod,bLocalTime) Debug "Unix time: " + Str(unixTime) ; One can also get the as a "DtObj" object for accessing the individual ; parts of the date/time, such as month, day, year, hour, minute, etc. ; The DtObj can be obtained in the GMT or local timezone: dtObj.i = CkDateTime::ckGetDtObj(lastmod,bLocalTime) If CkDateTime::ckLastMethodSuccess(lastmod) = 0 Debug "This should never really happen!" CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkDateTime::ckDispose(lastmod) ProcedureReturn EndIf Debug Str(CkDtObj::ckDay(dtObj)) + "-" + Str(CkDtObj::ckMonth(dtObj)) + "-" + Str(CkDtObj::ckYear(dtObj)) + " " + Str(CkDtObj::ckHour(dtObj)) + ":" + Str(CkDtObj::ckMinute(dtObj)) + ":" + Str(CkDtObj::ckSecond(dtObj)) CkDtObj::ckDispose(dtObj) ; ------------------------------------------------- ; The file's metadata look like this: ; { ; "d": { ; "__metadata": { ; "id": "Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')", ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')", ; "type": "SP.File" ; }, ; "Author": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Author" ; } ; }, ; "CheckedOutByUser": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/CheckedOutByUser" ; } ; }, ; "ListItemAllFields": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/ListItemAllFields" ; } ; }, ; "LockedByUser": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/LockedByUser" ; } ; }, ; "ModifiedBy": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/ModifiedBy" ; } ; }, ; "Versions": { ; "__deferred": { ; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Versions" ; } ; }, ; "CheckInComment": "", ; "CheckOutType": 2, ; "ContentTag": "{E2F05E75-B3EF-4826-8284-E572D3628A7D},9,10", ; "CustomizedPageStatus": 0, ; "ETag": "\"{E2F05E75-B3EF-4826-8284-E572D3628A7D},9\"", ; "Exists": true, ; "Length": "21082", ; "Level": 2, ; "MajorVersion": 0, ; "MinorVersion": 3, ; "Name": "VCAC-document.docx", ; "ServerRelativeUrl": "/Documents/VCAC-document.docx", ; "TimeCreated": "2016-03-04T12:38:01Z", ; "TimeLastModified": "2017-01-16T04:44:31Z", ; "Title": "", ; "UIVersion": 3, ; "UIVersionLabel": "0.3" ; } ; } ; CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkDateTime::ckDispose(lastmod) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.