#getBoxFiles.ps1
#created by mikebai 2021/07/15 jpfocus.com
$topFolderId = "0"
$topFolderName = "BoxTop"
# https://developer.box.com/reference/get-folders-id-items/
# https://developer.box.com/reference/resources/file/#param-content_created_at
# file info props > https://developer.box.com/reference/get-files-id/#response-example
$urlTemplate = "https://api.box.com/2.0/folders/{0}/items?fields=name,id,type,created_by,created_at,modified_at,modified_by&limit=100000"
$devToken = "xxxxxxxxxxxxxxx" # you can get dev token id from > https://app.box.com/developers/console
$formatter1 = "yyyy_MM_dd"
$formatter2 = "yyyy_MM_dd__HH_mm_ss"
$formatter3 = "yyyy/MM/dd HH:mm:ss"
$scriptFolder = split-path -parent $MyInvocation.MyCommand.Definition
$tabTag = "`t"
$Headers = @{}
$Headers = @{"Authorization" = "Bearer $devToken" }
function getFiles {
param (
[Parameter(Mandatory = $true)]
[ValidateNotNull()]
[string]$parentFolderId,
[Parameter(Mandatory = $true)]
[ValidateNotNull()]
[string]$parenFoldertName,
[Parameter(Mandatory = $true)]
[ValidateNotNull()]
[Int32]$layerLevel
)
$url = $urlTemplate -f $parentFolderId
$fileInfoList = Invoke-RestMethod -Method Get -Uri $url -Headers $Headers
if ( $null -eq $fileInfoList -or $null -eq $fileInfoList.entries -or 0 -eq $fileInfoList.entries.Length) {