PowerShell Dropbox: Dropbox Create Folder

Back to Index

Create a folder. Creates the folder /Halloween/emojis

Documentation: https://www.dropbox.com/developers/documentation/http/documentation#files-create_folder

CURL Command

curl -X POST https://api.dropboxapi.com/2/files/create_folder_v2 \
    --header "Authorization: Bearer DROPBOX-ACCESS-TOKEN" \
    --header "Content-Type: application/json" \
    --data "{\"path\": \"/Halloween/emojis\",\"autorename\": false}"

PowerShell Example

[Reflection.Assembly]::LoadFile("C:\myAssemblies\ChilkatDotNet47.dll")

$rest = New-Object Chilkat.Rest

#  URL: https://api.dropboxapi.com/2/files/create_folder_v2
$bTls = $true
$port = 443
$bAutoReconnect = $true
$success = $rest.Connect("api.dropboxapi.com",$port,$bTls,$bAutoReconnect)
if ($success -ne $true) {
    $("ConnectFailReason: " + $rest.ConnectFailReason)
    $($rest.LastErrorText)
    exit
}

#  See the Online Tool for Generating JSON Creation Code
$json = New-Object Chilkat.JsonObject
$json.UpdateString("path","/Halloween/emojis")
$json.UpdateBool("autorename",$false)

$rest.AddHeader("Authorization","Bearer DROPBOX-ACCESS-TOKEN")
$rest.AddHeader("Content-Type","application/json")

$sbRequestBody = New-Object Chilkat.StringBuilder
$json.EmitSb($sbRequestBody)
$sbResponseBody = New-Object Chilkat.StringBuilder
$success = $rest.FullRequestSb("POST","/2/files/create_folder_v2",$sbRequestBody,$sbResponseBody)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$respStatusCode = $rest.ResponseStatusCode
if ($respStatusCode -ge 400) {
    $("Response Status Code = " + $respStatusCode)
    $("Response Header:")
    $($rest.ResponseHeader)
    $("Response Body:")
    $($sbResponseBody.GetAsString())
    exit
}

$jsonResponse = New-Object Chilkat.JsonObject
$jsonResponse.LoadSb($sbResponseBody)

#  See the Online Tool for Generating JSON Parse Code

$metadataName = $jsonResponse.StringOf("metadata.name")
$metadataId = $jsonResponse.StringOf("metadata.id")
$metadataPath_lower = $jsonResponse.StringOf("metadata.path_lower")
$metadataPath_display = $jsonResponse.StringOf("metadata.path_display")
$metadataSharing_infoRead_only = $jsonResponse.BoolOf("metadata.sharing_info.read_only")
$metadataSharing_infoParent_shared_folder_id = $jsonResponse.StringOf("metadata.sharing_info.parent_shared_folder_id")
$metadataSharing_infoTraverse_only = $jsonResponse.BoolOf("metadata.sharing_info.traverse_only")
$metadataSharing_infoNo_access = $jsonResponse.BoolOf("metadata.sharing_info.no_access")
$i = 0
$count_i = $jsonResponse.SizeOfArray("metadata.property_groups")
while ($i -lt $count_i) {
    $jsonResponse.I = $i
    $template_id = $jsonResponse.StringOf("metadata.property_groups[i].template_id")
    $j = 0
    $count_j = $jsonResponse.SizeOfArray("metadata.property_groups[i].fields")
    while ($j -lt $count_j) {
        $jsonResponse.J = $j
        $name = $jsonResponse.StringOf("metadata.property_groups[i].fields[j].name")
        $value = $jsonResponse.StringOf("metadata.property_groups[i].fields[j].value")
        $j = $j + 1
    }

    $i = $i + 1
}

Sample JSON Response Body

{
  "metadata": {
    "name": "emojis",
    "id": "id:a4ayc_80_OEAAAAAAAAAXz",
    "path_lower": "/halloween/emojis",
    "path_display": "/Halloween/emojis",
    "sharing_info": {
      "read_only": false,
      "parent_shared_folder_id": "84528192421",
      "traverse_only": false,
      "no_access": false
    },
    "property_groups": [
      {
        "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa",
        "fields": [
          {
            "name": "Security Policy",
            "value": "Confidential"
          }
        ]
      }
    ]
  }
}