Sample code for 30+ languages & platforms
Visual FoxPro

Bunny Edge Storage - List Files

See more Bunny CDN Examples

Retrieve a list of files and directories located in the given directory.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loSbResponse
LOCAL lnStatusCode
LOCAL loJarr
LOCAL loJson
LOCAL lcGuid
LOCAL lcStorageZoneName
LOCAL lcPath
LOCAL lcObjectName
LOCAL lnLength
LOCAL lcLastChanged
LOCAL lnServerId
LOCAL lnArrayNumber
LOCAL lnIsDirectory
LOCAL lcUserId
LOCAL lcContentType
LOCAL lcDateCreated
LOCAL lnStorageZoneId
LOCAL lcChecksum
LOCAL lcReplicatedZones
LOCAL i
LOCAL lnCount_i

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* Use the "Password" from the "FTP & HTTP API Access" console web page for your Bunny storage zone.
loHttp.SetRequestHeader("AccessKey","YOUR_FTP_AND_HTTP_PASSWORD")

* Storage Endpoints:
* The storage API endpoint depends on the primary storage region of your storage zone. You can also find this in the FTP & HTTP API Information of your storage zone.

* Falkenstein: storage.bunnycdn.com
* New York: ny.storage.bunnycdn.com
* Los Angeles: la.storage.bunnycdn.com
* Singapore: sg.storage.bunnycdn.com
* Sydney: syd.storage.bunnycdn.com
* London: uk.storage.bunnycdn.com
* ... (possibly others??)

loSbResponse = CreateObject('Chilkat.StringBuilder')

* Change the "storageZoneName" to your actual storage zone name.
lnSuccess = loHttp.QuickGetSb("https://uk.storage.bunnycdn.com/storageZoneName/testDir/",loSbResponse)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loSbResponse
    CANCEL
ENDIF

lnStatusCode = loHttp.LastStatus
? "Status code = " + STR(lnStatusCode)

IF (lnStatusCode <> 200) THEN
    ? loSbResponse.GetAsString()
    ? "Failed."
    RELEASE loHttp
    RELEASE loSbResponse
    CANCEL
ENDIF

loJarr = CreateObject('Chilkat.JsonArray')
loJarr.LoadSb(loSbResponse)
loJarr.EmitCompact = 0

? loJarr.Emit()

* Here is a sample response.  Parsing code is shown below..

* [
*   {
*     "Guid": "ebd9ccff-faf7-449d-9c71-8662b9f3cf41",
*     "StorageZoneName": "chilkat",
*     "Path": "/chilkat/testDir/",
*     "ObjectName": "seahorse.jpg",
*     "Length": 24388,
*     "LastChanged": "2023-04-21T15:59:08.382",
*     "ServerId": 586,
*     "ArrayNumber": 0,
*     "IsDirectory": false,
*     "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
*     "ContentType": "",
*     "DateCreated": "2023-04-21T15:59:08.382",
*     "StorageZoneId": 266805,
*     "Checksum": "0503558E7B4D141C067BEECFD06F87F6F58B81E37918310F82C7C4077D27BD1D",
*     "ReplicatedZones": "SE,DE,LA,SG,JH,BR,SYD,NY"
*   },
*   {
*     "Guid": "e74b85f8-4d5d-459e-a2fc-0fcfa8c926aa",
*     "StorageZoneName": "chilkat",
*     "Path": "/chilkat/testDir/",
*     "ObjectName": "seal.jpg",
*     "Length": 342708,
*     "LastChanged": "2023-04-21T15:59:08.763",
*     "ServerId": 586,
*     "ArrayNumber": 2,
*     "IsDirectory": false,
*     "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
*     "ContentType": "",
*     "DateCreated": "2023-04-21T15:59:08.763",
*     "StorageZoneId": 266805,
*     "Checksum": "C95F946A0299CE39C20A072B3DC581446B2EE2D94CA93901B58604F4EFB8AAB5",
*     "ReplicatedZones": "DE,SE,SG,LA,JH,BR,SYD,NY"
*   },
*   {
*     "Guid": "ca80cdbd-c6cf-445d-b367-0b33de7ae65a",
*     "StorageZoneName": "chilkat",
*     "Path": "/chilkat/testDir/",
*     "ObjectName": "university.jpg",
*     "Length": 277581,
*     "LastChanged": "2023-04-21T15:59:10.142",
*     "ServerId": 586,
*     "ArrayNumber": 0,
*     "IsDirectory": false,
*     "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
*     "ContentType": "",
*     "DateCreated": "2023-04-21T15:59:10.142",
*     "StorageZoneId": 266805,
*     "Checksum": "96A10EAA1B778C066739A6233206022DB219B67A8775401D7865F40E6DD83571",
*     "ReplicatedZones": "DE,SE,SG,JH,BR,LA,SYD,NY"
*   }
* ]

* Use this online tool to generate parsing code from sample JSON: 
* Generate Parsing Code from JSON

i = 0
lnCount_i = loJarr.Size
DO WHILE i < lnCount_i
    loJson = loJarr.ObjectAt(i)
    lcGuid = loJson.StringOf("Guid")
    lcStorageZoneName = loJson.StringOf("StorageZoneName")
    lcPath = loJson.StringOf("Path")
    lcObjectName = loJson.StringOf("ObjectName")
    lnLength = loJson.IntOf("Length")
    lcLastChanged = loJson.StringOf("LastChanged")
    lnServerId = loJson.IntOf("ServerId")
    lnArrayNumber = loJson.IntOf("ArrayNumber")
    lnIsDirectory = loJson.BoolOf("IsDirectory")
    lcUserId = loJson.StringOf("UserId")
    lcContentType = loJson.StringOf("ContentType")
    lcDateCreated = loJson.StringOf("DateCreated")
    lnStorageZoneId = loJson.IntOf("StorageZoneId")
    lcChecksum = loJson.StringOf("Checksum")
    lcReplicatedZones = loJson.StringOf("ReplicatedZones")
    RELEASE loJson
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loSbResponse
RELEASE loJarr