Dropbox.GetFileList只有returns个有限的文件
Dropbox.GetFileList only returns limited number of files
我有以下代码:
public static void ReadAndInsertFromDropbox(string accessToken, string dropboxPath, string localPath)
{
Dropbox db = new Dropbox(accessToken);
List<string> allFiles = db.GetFileList(dropboxPath);
allFiles.Sort();
foreach (string allFile in allFiles)
{
string filePath = db.Download(dropboxPath, localPath, baseName);
}
}
return文件数量有限。
我没有计算它可以处理的最大文件数 return 但它似乎在 2,000 - 2,400 之间。
这是 GetFileList 的代码:
public List<string> GetFileList(string dropboxfolder)
{
List<string> l = new List<string>();
var list = client.Files.ListFolderAsync(dropboxfolder);
list.Wait();
ListFolderResult listResult = list.Result;
foreach (var item in listResult.Entries.Where(i => i.IsFile))
{
l.Add(item.Name);
}
return (l);
}
如何更改代码以允许下载无限数量的文件?
ListFolder
界面是分页的,这意味着您每次请求只能获得总结果的一部分。 The ListFolderContinueAsync
method should be used, in addition to ListFolderAsync
,为了得到所有的结果。
您可以在 the ListFolderAsync
documentation 中找到更多信息。
我有以下代码:
public static void ReadAndInsertFromDropbox(string accessToken, string dropboxPath, string localPath)
{
Dropbox db = new Dropbox(accessToken);
List<string> allFiles = db.GetFileList(dropboxPath);
allFiles.Sort();
foreach (string allFile in allFiles)
{
string filePath = db.Download(dropboxPath, localPath, baseName);
}
}
return文件数量有限。
我没有计算它可以处理的最大文件数 return 但它似乎在 2,000 - 2,400 之间。
这是 GetFileList 的代码:
public List<string> GetFileList(string dropboxfolder)
{
List<string> l = new List<string>();
var list = client.Files.ListFolderAsync(dropboxfolder);
list.Wait();
ListFolderResult listResult = list.Result;
foreach (var item in listResult.Entries.Where(i => i.IsFile))
{
l.Add(item.Name);
}
return (l);
}
如何更改代码以允许下载无限数量的文件?
ListFolder
界面是分页的,这意味着您每次请求只能获得总结果的一部分。 The ListFolderContinueAsync
method should be used, in addition to ListFolderAsync
,为了得到所有的结果。
您可以在 the ListFolderAsync
documentation 中找到更多信息。