Dropbox.GetFileList возвращает только ограниченное количество файлов - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть следующий код:

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);
    }
}

Возвращает ограниченное количество файлов.

Я не подсчитал максимальное количество файлов, которые он может вернуть, но кажется, чтогде-то между 2000 - 2400.

вот код для 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);
}

Как изменить код, чтобы разрешить загрузку неограниченного количества файлов?

1 Ответ

0 голосов
/ 18 февраля 2019

Интерфейс ListFolder разбит на страницы, что означает, что вы можете получить только часть общих результатов за один запрос. Для получения всех результатов следует использовать ListFolderContinueAsync метод , в дополнение к ListFolderAsync.

Дополнительную информацию можно найти в документация ListFolderAsync .

...