Search code examples
c#apiuploadcloud

How Can I Upload Folder or Directory using Mega API in C#?


I was able to upload a file in Mega cloud storage using its API client. But I can't find a way to upload whole folder to cloud using c#. Is there any module that can finish this job?


Solution

  • Thanks to Paolo I have found a method from the link https://social.msdn.microsoft.com/Forums/en-US/6fb488ac-5171-4af6-ad9c-5d9c29173a05/upload-all-files-and-folders-using-c?forum=aspcsharp

    void RecureDirectory(DirectoryInfo directory)
    {
        CreateFolder("ftp://192.168.149.1/"+directory.Name);
        FileInfo[] files = null;
        DirectoryInfo[] subDirectories = null;
        //first, process all the files directly under this folder
        files = directory.GetFiles("*.*");
        if (files != null)
        {
            foreach (FileInfo file in files)
            {
                string fileName = file.Name;
                FileStream fileStream = file.OpenRead();
                byte[] fileContents = new byte[fileStream.Length];
                fileStream.Read(fileContents, 0, (int)fileStream.Length);
                CopyCorresondFilesForFolderCreated(ViewState["FolderName"].ToString(),fileName, fileContents);
                ViewState["FolderName"] = null;
            }
            //now find all the subdirectories under this directory
            subDirectories = directory.GetDirectories();
            foreach (DirectoryInfo dirInfo in subDirectories)
            {
                //resurvise call for each subdirectory
    
                RecureDirectory(dirInfo);
            }
        }
    }