Your workflow is unique 👨‍💻 -  tell us how you use Dropbox here.

Forum Discussion

808phone's avatar
808phone
Explorer | Level 4
8 years ago

Folders with lots of files failing

When I call listFolder like in the example code, *response is often nil.

This only happens with large numbers of files (over 1800, with some people 3000+ files).

 

DBFILESListFolderResult *response is nil.

 

This is a problem for my app.

 

 

[[client.filesRoutes listFolder:@"/test/path/in/Dropbox/account"]
    setResponseBlock:^(DBFILESListFolderResult *response, DBFILESListFolderError *routeError, DBRequestError *networkError) {
      if (response) {
        NSArray<DBFILESMetadata *> *entries = response.entries;
        NSString *cursor = response.cursor;
        BOOL hasMore = [response.hasMore boolValue];

        [self printEntries:entries];

        if (hasMore) {
          NSLog(@"Folder is large enough where we need to call `listFolderContinue:`");

          [self listFolderContinueWithClient:client cursor:cursor];
        } else {
          NSLog(@"List folder complete.");
        }
      } else {
        NSLog(@"%@\n%@\n", routeError, networkError);
      }
    }];
listFolder

 

4 Replies

  • 808phone's avatar
    808phone
    Explorer | Level 4
    8 years ago

    So the problem is that I created 2 different calls. One for folders only and another for files. Apparently if there are enough files and it takes long enough, having the 2 calls at the same time will cause problems. I guess they cannot run concurrently without something happening. If I use just one routine, it works but is considerably slower than V1 I think.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago
    If response is nil, make sure you check the routeError and networkError. One of them should contain an error message.

    In any case, yes, you shouldn't make multiple concurrent listFolder[Continue] calls. A single listFolder[Continue] loop will return both files and folders under the requested path.
  • 808phone's avatar
    808phone
    Explorer | Level 4
    8 years ago

    Greg,

     

    The routine is much slower than V1 as well. The callback takes much longer. Is there going to be any improvement on this?

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago
    I can't make any promises, but I'm sending this along to the team as a request to improve performance here.

About Dropbox API Support and Feedback

Node avatar for Dropbox API Support and Feedback
Get help with the Dropbox API from fellow developers and experts.

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!