首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DropNet从Dropbox下载文件

使用DropNet从Dropbox下载文件
EN

Stack Overflow用户
提问于 2012-10-13 08:28:19
回答 2查看 2.3K关注 0票数 1

我正在尝试下载文件列表,但不确定如何继续。正如主题所述,我使用的是DropNet,以下是我尝试使用的下载文件的过程:

获取我的应用程序专用文件夹中所有文件的列表,并将它们作为字符串存储在列表中。

然后尝试执行以下操作:

代码语言:javascript
复制
foreach (string file in files)
{
    _client.GetFileAsync("/" +file,
        (response) =>
        {
            using(FileStream fs = new FileStream(path +file +".gttmp", FileMode.Create))
            {
                for(int i = 0; i < response.RawBytes.Length; i++)
                {
                    fs.WriteByte(response.RawBytes[i]);
                }
                fs.Seek(0, SeekOrigin.Begin);
                for(int i = 0; i < response.RawBytes.Length; i++)
                {
                    if(response.RawBytes[i] != fs.ReadByte())
                    {
                        MessageBox.Show("Error writing data for " +file);
                        return;
                    }
                }
            }
        },
        (error) =>
        {
            MessageBox.Show("Could not download file " +file, "Error!");
        });
}

不幸的是,它似乎根本不起作用。有谁在使用DropNet,能给我推荐一些有用的东西吗?

EN

回答 2

Stack Overflow用户

发布于 2012-10-13 08:54:12

改用同步方法:

代码语言:javascript
复制
foreach (string file in files)
{
    var fileBytes = _client.GetFile("/" + file);
    using (FileStream fs = new FileStream(path +file + ".gttmp", FileMode.Create))
    {
        for (int i = 0; i < fileBytes.Length; i++)
        {
            fs.WriteByte(fileBytes[i]);
        }
        fs.Seek(0, SeekOrigin.Begin);
        for (int i = 0; i < fileBytes.Length; i++)
        {
            if (fileBytes[i] != fs.ReadByte())
            {
                MessageBox.Show("Error writing data for " + file);
                break;
            }
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-09-09 12:55:32

你的异步下载文件的代码运行得很好,我尝试了下面的方法,它没有错误地进行。

代码语言:javascript
复制
client.GetFileAsync("/novemberrain.mp3",
                (response) =>
                {
                    using (FileStream fs = new FileStream(@"D:\novemberrain.mp3", FileMode.Create))
                    {
                        for (int i = 0; i < response.RawBytes.Length; i++)
                        {
                            fs.WriteByte(response.RawBytes[i]);
                        }
                    }
                    MessageBox.Show("file downloaded");
                },
                (error) =>
                {
                    MessageBox.Show("error downloading");
                });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12868832

复制
相关文章

相似问题

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