首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归下载包含所有内容的文件夹,Sharpbox

递归下载包含所有内容的文件夹,Sharpbox
EN

Stack Overflow用户
提问于 2013-10-04 13:55:49
回答 2查看 954关注 0票数 0

因此,我设置了一个小应用程序,我想用它从我的公共Dropbox文件夹中下载一个文件夹,并将其中的所有内容下载到vm。

如果我试着:

代码语言:javascript
复制
var publicFolder = dropBoxStorage.GetFolder("/Public");
string targetFile = @"C:\Users\Michael\";
dropBoxStorage.DownloadFile(publicFolder,@"WS",targetFile);

如果文件夹中包含了我想下载的所有内容,请使用WS。

但是,当我运行代码时,我得到:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-04 14:37:45

SharpBox不支持下载文件夹。我花了时间写了一个函数,它应该递归地下载文件夹。(不过还没有测试过)。

代码语言:javascript
复制
string remoteDirName = @"/Public/WS";
string targetDir = @"C:\Users\Michael\";
var remoteDir = dropBoxStorage.GetFolder(remoteDirName);

public static DownloadFolder(CloudStorage dropBoxStorage,ICloudDirectoryEntry remoteDir, string targetDir)
{

    foreach (ICloudFileSystemEntry fsentry in remoteDir)
    {
        if (fsentry is ICloudDirectoryEntry)
        {
            DownloadFolder(dropBoxStorage, fsentry, Path.Combine(targetDir, fsentry.Name));
        }
        else
        {
            dropBoxStorage.DownloadFile(remoteDir,fsentry.Name,Path.Combine(targetDir, fsentry.Name));
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-12 06:38:54

它对下面的代码也很好。

代码语言:javascript
复制
var PublicFolder = dropBoxStorage.GetFolder("/Public");
 if (PublicFolder != null && PublicFolder.ToList().Count > 0)
                {
 DownloadFolder(dropBoxStorage, PublicFolder as ICloudDirectoryEntry, targetPath);
}



public static void DownloadFolder(CloudStorage dropBoxStorage, ICloudDirectoryEntry remoteDir, string targetDir)
    {
        foreach (var fof in remoteDir.ToList())
        {

            if (fof is ICloudDirectoryEntry)
            {
                DirectoryInfo newDir = new DirectoryInfo(Path.Combine(targetDir, fof.Name));
                if (!newDir.Exists)
                {
                    Directory.CreateDirectory(Path.Combine(targetDir, fof.Name));
                }

                DownloadFolder(dropBoxStorage, fof as ICloudDirectoryEntry, Path.Combine(targetDir, fof.Name));
            }
            else
            {
                dropBoxStorage.DownloadFile(remoteDir, fof.Name, Path.Combine(targetDir));
            }

        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19183095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档