【发布时间】:2017-04-11 05:03:54
【问题描述】:
我正在尝试使用 Dropbox .NET SDK 编写一些代码。我的目标与以下场景有关:
我有一个与一个人共享的主文件夹。该人偶尔会更改主文件夹中的文件。我在其他地方有一组共享文件夹,每个文件夹都与不同的个人共享。主文件夹中的每个文件都需要复制到各个共享文件夹,具体取决于每个文件夹的共享对象。给定以下文件夹/文件结构:
Master (folder)
Master/a.txt
Master/b.txt
A (folder)
B (folder)
a.txt需要从Master复制到A
b.txt需要从Master复制到B
目前此复制是手动完成的。我的目标是自动化这个过程。这是我坚持的:
DropboxClient.Files.ListFolderLongpollAsync 始终返回 true,即使没有任何更改。此外,当我根据ListFolderLongpollResult.Changes 的文档调用DropboxClient.Files.ListFolderContinueAsync 以获取更改的文件时,Entries 属性为空。即使在我对文件进行更改后也是如此。
这是我的代码:
class Program
{
static void Main(string[] args)
{
var task = Task.Run((Func<Task>)Program.Run);
task.Wait();
}
static async Task Run()
{
try
{
using (var dbx = new Dropbox.Api.DropboxClient("<ACCESS_TOKEN>"))
{
var listFolderArg = new ListFolderArg("/master", true);
var cursor = await dbx.Files.ListFolderAsync(listFolderArg);
ListFolderLongpollArg listFolderLongPollArg = new ListFolderLongpollArg(cursor.Cursor, 30);
var lp = await dbx.Files.ListFolderLongpollAsync(listFolderLongPollArg);
if (lp.Changes)
{
var res = await dbx.Files.ListFolderContinueAsync(new ListFolderContinueArg(cursor.Cursor));
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
我尝试获取初始光标,然后调用 ListFolderLongpollAsync,然后调用 ListFolderAsync 以获取新光标,然后再调用 ListFolderLongpollAsync,我想也许我需要找出是否有在获取第一个和第二个光标之间发生了变化,但结果是一样的。
我到底错过了什么?
【问题讨论】: