Eng Mohamed Bassuny Ответов: 1

Как я могу сделать uploadfileasync в mega API


я новичок в C#, и это первый раз, когда я использую этот API

я пытаюсь загрузить файл на свой мега-аккаунт с помощью приложения C#

и я преуспеваю в загрузке, но без какого-либо индикатора прогресса

и API имеет этот метод "UploadFileAsync", но я не могу понять каждый параметр в этом методе


это из Обозревателя объектов в VS

Цитата:
IMegaApiClient.UploadFileAsync(string, CG.Web.MegaApiClient.INode, Система.IProgress<double>, Система.Нарезание резьбы.CancellationToken?)


Цитата:
Система.Нарезание резьбы.Задачи.Задача<cg.web.megaapiclient.inode> UploadFileAsync(строковое имя файла, CG.Web.MegaApiClient.Дескриптор родителя, системы.IProgress<double> прогресс, [система.Нарезание резьбы.CancellationToken? cancellationToken = null])
Член CG.Web.MegaApiClient.IMegaApiClient


я знаю имя файла и индекс родителя

но
что я должен написать в "системе.IProgress<double> прогресс"
и cancellationToken

Что я уже пробовал:

public uploadFileData uploadToMega(string megaFolderName, string megaFolderID, string filePathOnComputer, string newFileNameOnMega)
        {
            //Implemnt Struct
            uploadFileData myMegaFileData = new uploadFileData();

            //Start Mega Cient
            var myMegaClient = new MegaApiClient();

            //Login To Mega
            myMegaClient.Login(Userrrr, Passss);

            //Get All (File & Folders) in Mega Account
            IEnumerable<INode> nodes = myMegaClient.GetNodes();

            //Creat List Of All Folders In Mega Account
            List<INode> megaFolders = nodes.Where(n => n.Type == NodeType.Directory).ToList();

            //Choose Exist Folder In Mega Account By Name & Id
            INode myFolderOnMega = megaFolders.Where(folder => folder.Name == megaFolderName && folder.Id == megaFolderID).FirstOrDefault();
           

            //Upload The File
            //Normal Upload
            //INode myFile = myMegaClient.UploadFile(filePathOnComputer, myFolderOnMega);

            // Upload With progress bar 
            INode myFile =  myMegaClient.UploadFileAsync(filePathOnComputer, myFolderOnMega, progressBar1, default());


            //Rename The File In Mega Server
            if (string.IsNullOrEmpty(newFileNameOnMega))
            {
                
            }
            else
            {
                myMegaClient.Rename(myFile, newFileNameOnMega);
            }
            
            //Get Download Link
            Uri downloadLink = myMegaClient.GetDownloadLink(myFile);

            myMegaFileData.megaFileId = myFile.Id;
            Clipboard.SetText(myMegaFileData.megaFileId);
            myMegaFileData.megaFileType = myFile.Type.ToString();
            myMegaFileData.megaFileName = myFile.Name;
            myMegaFileData.megaFileOwner = myFile.Owner;
            myMegaFileData.megaFileParentId = myFile.ParentId;
            myMegaFileData.megaFileCreationDate = myFile.CreationDate.ToString();
            myMegaFileData.megaFileModificationDate = myFile.ModificationDate.ToString();
            myMegaFileData.megaFileSize = myFile.Size.ToString();
            myMegaFileData.megaFileDownloadLink = downloadLink.ToString();



            myMegaClient.Logout();



            return myMegaFileData;
        } 

1 Ответов

Рейтинг:
11

Afzaal Ahmad Zeeshan

Вы уже получили ответ: c# - как я могу сделать UploadFileAsync в Mega API - переполнение стека[^]. :Д