Sample code for 30+ languages & platforms
AutoIt

SharePoint -- Get File Metadata (File Size, Last-Modified Date/Time, etc.)

See more SharePoint Examples

Demonstrates how to get a file's metdata, which includes the file size, last-modified date/time, name, server relative URL, etc.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This requires the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")

;  If SharePoint Windows classic authentication is used, then set the 
;  Login, Password, LoginDomain, and NtlmAuth properties.
$oHttp.Login = "SHAREPOINT_USERNAME"
$oHttp.Password = "SHAREPOINT_PASSWORD"
$oHttp.LoginDomain = "SHAREPOINT_NTLM_DOMAIN"
$oHttp.NtlmAuth = 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
$oHttp.Accept = "application/json;odata=verbose"
$oHttp.AcceptCharset = "utf-8"

Local $sUrl = "https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')"

Local $sJsonReply = $oHttp.QuickGetStr($sUrl)
If ($oHttp.LastMethodSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

;  Examine the file's metadata in JSON format.
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.Load($sJsonReply)
$oJson.EmitCompact = False

;  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 ($oHttp.LastStatus <> 200) Then
    ConsoleWrite($oJson.Emit() & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

ConsoleWrite($oJson.Emit() & @CRLF)

ConsoleWrite("--------" & @CRLF)
ConsoleWrite("Server relative URL: " & $oJson.StringOf("d.ServerRelativeUrl") & @CRLF)

Local $iFileSize = $oJson.IntOf("d.Length")
ConsoleWrite("File Size = " & $iFileSize & @CRLF)

$oLastmod = ObjCreate("Chilkat.CkDateTime")
$oLastmod.SetFromTimestamp($oJson.StringOf("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:
Local $bLocalTime = False
ConsoleWrite($oLastmod.GetAsRfc822($bLocalTime) & @CRLF)

;  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 = True
ConsoleWrite($oLastmod.GetAsRfc822($bLocalTime) & @CRLF)

;  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). 
Local $iUnixTime = $oLastmod.GetAsUnixTime($bLocalTime)
ConsoleWrite("Unix time: " & $iUnixTime & @CRLF)

;  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:
$oDtObj = ObjCreate("Chilkat.DtObj")
$oLastmod.ToDtObj $bLocalTime,$oDtObj

If ($oLastmod.LastMethodSuccess = False) Then
    ConsoleWrite("This should never really happen!" & @CRLF)
    Exit
EndIf

ConsoleWrite($oDtObj.Day & "-" & $oDtObj.Month & "-" & $oDtObj.Year & " " & $oDtObj.Hour & ":" & $oDtObj.Minute & ":" & $oDtObj.Second & @CRLF)

;  -------------------------------------------------
;  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"
;    }
;  }
;