C# 如何在dropbox api中实现文件夹内容的分页

C# 如何在dropbox api中实现文件夹内容的分页,c#,asp.net-mvc,dropbox-api,C#,Asp.net Mvc,Dropbox Api,是否有api调用来实现dropbox文件夹的分页?目前,我使用ListFolderAsync来迭代一个文件夹的内容,其中检索大型文件夹的内容非常慢。ListFolderGetLatestCursorResult不返回任何结果,因此我不确定这是否是一个结果 var children = await GetClient().Files.ListFolderAsync(dbxItem.PathLower == DROPBOX_ROOT_PATH ? string.Empty : dbxItem.Pat

是否有api调用来实现dropbox文件夹的分页?目前,我使用ListFolderAsync来迭代一个文件夹的内容,其中检索大型文件夹的内容非常慢。ListFolderGetLatestCursorResult不返回任何结果,因此我不确定这是否是一个结果

var children = await GetClient().Files.ListFolderAsync(dbxItem.PathLower == DROPBOX_ROOT_PATH ? string.Empty : dbxItem.PathLower, limit:100); // limit controls the page size

while (children.HasMore)
{
     children = await GetClient().Files.ListFolderContinueAsync(children.Cursor);               
}
return children.Entries;

Dropbox API通过和为列出文件和文件夹提供分页。即,Dropbox不会在每个响应中返回无限数量的条目。响应中的将指示您是否需要回拨以获取另一页的结果


不过,它不提供请求自定义页面大小的功能。

粗略地看一下这个问题,API似乎根本不支持分页,不幸的是,由于它是一个web请求,如果不首先获取所有数据,您就无法实现自己的版本,而这些数据并不能解决您的问题当前在这个问题上的立场是closed@RobertPetz根据链接,它提到ListFolder,您不能设置特定的页面大小,也不能保证任何特定的页面大小。如果ListFolderResult.HasMore为true,您应该让应用程序回拨ListFolderResult继续使用最新的ListFolderResult.cursor,然后重复,直到其为false。这不是分页吗?如果出于性能原因,您只需要它就可以对数据进行分块,那么您只需在数据中移动光标,直到到达末尾。但是,如果您需要向用户显示分页控件,那么您将不知道涉及多少页,并且如果您愿意,将无法构建标准分页使用这样的游标来提高性能,您需要使前端异步。基本上,当您读取从服务器返回的数据时,您将实时将其添加到前端,而不是等待它处理所有数据。由于API不支持正确的分页,因此没有任何方法可以加快其端的速度,但在没有看到您的代码的情况下,我们无法提供任何性能提示来提高您端的性能。@Robert Petz和@Greg因此,在更改代码并使用ListFolderContinue后,我可以加载以前失败的文件夹。然而,它仍然很慢。有什么方法可以提高性能吗?没有,没有更快的方法。请注意,您可以存储并重新使用最新的游标,以便只获取上次调用后的更改,因此您不必每次都浏览每个页面。我正在测试一些性能结果。但是没有任何改善。对于100个文件,在更改前后加载需要33秒。但是,对于大于500的文件,以前文件夹加载失败,但已更改其加载,因此这是一个修复方法。现在,您可以使用limit参数Thank@Greg设置页面大小的近似限制。访问限制的语法是什么。我将dropbox api更新为最新的4.3.1版本,但仍然无法获取limit属性。我的访问方式如下:var children=GetDropboxClient.Files.ListFolderAsync。。。;然后是孩子。限制但没有这样的属性。