The following code (which works fine for Box.com) doesn't succeed at creating a subfolder in DropBox:
TAdvDropBox *Box = dynamic_cast<TAdvDropBox *>(g_PRCloud);
TTreeNode *NodeItem = NULL;
TTreeNode *CompanyFolder = NULL;
TTreeNode *TechFolder = NULL;
TTreeNode *PayrollFolder = NULL;
TCloudItem *CloudItem = NULL;
TDropBoxItem *InFileUpload = NULL;
TDropBoxItem *UploadFolder = NULL;
TTreeView *FileTree = new TTreeView(GetWindow());
FileTree->Visible = false;
FileTree->ParentWindow = GetWindow()->Handle;
AnsiString acono;
if(cono <= 9) {acono = ("0" + AnsiString(cono));} else {acono = AnsiString(cono);}
Box->GetDriveInfo();
Box->FillTreeView(FileTree);
CompanyFolder = FindBoxItem(FileTree->Items, acono);
if(CompanyFolder == NULL)
{
Box->CreateFolder(NULL, acono); // Root level
Box->FillTreeView(FileTree);
CompanyFolder = FindBoxItem(FileTree->Items, acono);
if(CompanyFolder == NULL)
{
Application->MessageBox(L"Unable to create company folder on cloud storage drive.", L"Error Creating Folder", MB_OK | MB_ICONERROR);
delete FileTree;
return false;
}
}
PayrollFolder = FindBoxItem(CompanyFolder, "Payroll");
if(PayrollFolder == NULL)
{
CloudItem = static_cast<TCloudItem *>(CompanyFolder->Data); // returns NULL
Box->CreateFolder(CloudItem, "Payroll"); // Fails - because CloudItem is NULL, creates folder on root directory insteed of in sub-directory
Box->FillTreeView(FileTree);
PayrollFolder = FindBoxItem(CompanyFolder, "Payroll");
if(PayrollFolder == NULL)
{
Application->MessageBox(L"Unable to create Payroll folder on Box cloud storage drive.", L"Error Creating Folder", MB_OK | MB_ICONERROR);
delete FileTree;
return false;
}
}
The first folder created in the root directory of the Drop Box account is created successfully, but the following folder that is intended to be created inside that folder, does NOT get created successfully.