.NET C#-使用Dropbox API

时间:2018-10-03 11:21:02

标签: c# .net api dropbox

现在我被API困了两天...我正在创建一个游戏启动器,我需要在其中将游戏客户端的所有文件从Dropbox下载(同步)到用户。

我的目标是检查本地文件中是否存在我的保管箱帐户中的文件,如果不存在,则下载到特定文件夹中。

使用异步任务有点令人沮丧...但是我需要我的应用程序在检查和下载文件时做出响应,还需要使用进度条显示已下载的特定文件。我不想下载一个Zip文件,因为如果我在客户端中进行了一些小改动,我不希望用户一次又一次地下载整个客户端...

要检查文件是否已被修改,我想使用散列方法,但是我不知道如何使用它……所以我认为使用文件大小作为参考会更容易?

一天后,我终于做了一个简单的Dropbox文件和目录列表...这对A人来说是一个痛苦...

但是我注意到无法在异步检查中异步下载文件?还是我做错了什么?我对C#有所了解,但是在理解异步功能时总是遇到问题...

所以我的问题是: -如何比较Dropbox目录中的特定文件与本地文件是否已被修改(如果以前已下载过)? -如何将文件异步下载到同一本地文件夹? -如何实现显示文件名和进度百分比(0-100)的进度条?

我希望您能以某种方式为我提供帮助,我之前在google上搜索过一个解决方案,但是我没有运气,或者我不了解具体的解决方案。 Google云端硬盘对我来说太复杂了,所以我希望我能在使用Dropbox时遇到一些麻烦...

对不起我的英语,我不是说英语的人!

哦,是的,这是我的代码:

static async Task CheckFiles()
    {
        using (var dbx = new DropboxClient(token))
        {
            var amount = 0;
            var list = await dbx.Files.ListFolderAsync(string.Empty, true, false, false, false, true);
            string directoryPath;

            Debug.WriteLine("Dropbox File lister BEGIN");

            foreach (var item in list.Entries.Where(i => i.IsFolder))
            {
                Debug.WriteLine("Directory: " + item.AsFolder.PathDisplay);
                directoryPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + ClientDirectory + item.PathDisplay;
                Directory.CreateDirectory(directoryPath);
                amount++;
            }

            foreach (var item in list.Entries.Where(i => i.IsFile))
            {
                Debug.WriteLine("File: {0} | Directory: {1} | Size: {2} | Hash: {3}", item.Name, Path.GetDirectoryName(item.PathDisplay), item.AsFile.Size, item.AsFile.ContentHash);
                //That's not working!
                using (var response = dbx.Files.DownloadAsync(Path.GetDirectoryName(item.PathDisplay) + "/" + item.Name))
                {
                    Debug.WriteLine(response.GetContentAsStringAsync());
                }
                //
                amount++;
            }

            Debug.WriteLine("Dropbox File lister END - Found: {0} entries", amount);
        }
    }

最诚挚的问候!

0 个答案:

没有答案