Hello,
can you explain, how to create an automatically upload of three files?
Because of the event mechanism, I have problems to implement it.
This is my code.
Connect to OneDrive, after Connection, search for a special folder (GetFolderListHierarchical) and save it in CI_AppFolderOneDrive (OnGetFolderList).
With this folder information, I will upload some files.
TThread.CreateAnonymousThread(procedure ()
begin
ConnectToOneDrive(CloudOneDriveFNC); // Connect
//*******************************
TThread.Synchronize (TThread.CurrentThread,
procedure ()
begin
//*******************************
// cloudStatus := ctUpload;
CloudOneDriveFNC.Upload(MyForm.CI_AppFolderOneDrive, GetFilePath + 'myFile1.doc');
CloudOneDriveFNC.Upload(MyForm.CI_AppFolderOneDrive, GetFilePath + 'myFile2.doc');
CloudOneDriveFNC.Upload(MyForm.CI_AppFolderOneDrive, GetFilePath + 'myFile3.doc');
end);
end).Start;
procedure MyForm.CloudOneDriveFNCConnected(Sender: TObject);
var
FolderCI: TTMSFNCCloudMicrosoftOneDriveItem;
begin
Memo1.Lines.Add('Event OnConnected');
lblOneDrive.Caption := 'connected';
if FileExists(FilePath + cIniMainFile) then
MyForm.strFolderID := ReadIniData(FilePath + cIniMainFile, cStr_Sec_OneDrive, cStr_FolderID);
if MyForm.strFolderID = '' then
funcscloudFNC.OneDrive_getFolderID
// funcscloudFNC.OneDrive_CreateAppFolder
else
begin
cloudStatus := ctGetFiles;
FolderCI := TTMSFNCCloudMicrosoftOneDriveItem.Create(NIL);
FolderCI.id := MyForm.strFolderID;
CloudOneDriveFNC.GetFolderListHierarchical(FolderCI);
end;
end;
procedure MyForm.CloudOneDriveFNCGetFolderList(Sender: TObject;
const AFolderList: TTMSFNCCloudItems;
const ARequestResult: TTMSFNCCloudBaseRequestResult);
var
i: Integer;
DataOneDrive : TDataOneDrive;
bFolderFound : Boolean;
begin
Memo1.Lines.Add('Event OnGetFolderList: ' + FolderParts[MyForm.iLevel_SearchFolder]);
bFolderFound := false;
if Assigned(AFolderList) then
for var a := 0 to AFolderList.Count-1 do
begin
Memo1.Lines.Add('D: ' + AFolderList.Items[a].Filename);
if cloudStatus = ctGetFolder then
begin
if (AFolderList.Items[a].ItemType = ciFolder)
and (AFolderList.Items[a].FileName = FolderParts[MyForm.iLevel_SearchFolder]) then
begin
if MyForm.CI_AppFolderOneDrive = NIL then
MyForm.CI_AppFolderOneDrive := TTMSFNCCloudItem.Create(NIL);
// my Folder, where the files should be uploaded
// *********************
MyForm.CI_AppFolderOneDrive := AFolderList.Items[a];
// *********************
strFolderID := (AFolderList.Items[a] as TTMSFNCCloudMicrosoftOneDriveItem).ID;
Memo1.Lines.Add('Ordner gefunden, ID: '+ strFolderID);
SaveIniData(FilePath + cIniMainFile, cStr_Sec_OneDrive, cStr_FolderID, strFolderID);
bFolderFound := true;
end;
if bCreateFolder and not bFolderFound then // gewünschten Ordner erstellen
begin
Memo1.Lines.Add('Ordner nicht gefunden: '+ FolderParts[MyForm.iLevel_SearchFolder]);
Memo1.Lines.Add('Ordner erstellen in ' + MyForm.CI_AppFolderOneDrive.FileName);
CloudOneDriveFNC.CreateFolder(MyForm.CI_AppFolderOneDrive, FolderParts[MyForm.iLevel_SearchFolder]);
end;
end;
if cloudStatus = ctGetFiles then
begin
SearchFilesinFolder(AFolderList);
cloudStatus := ctNone; // nicht mehrfach abrufen
end;
end;