2016-12-10 16 views
1

私のボックスアカウントに "TestFolder"というフォルダがあるとします。そのフォルダのフォルダIDを取得して、iOSアプリ内からファイルを書き込むことができます。Box iOS SDK - フォルダ名が指定されていれば、フォルダIDを取得しますか?

私の唯一のオプションは、フォルダ名を探している私のボックスアカウントのルート全体を走査することですか?このようなもの?

__block NSString *folderID; 
BOXContentClient *contentClient = [BOXContentClient defaultClient]; 
BOXFolderItemsRequest *listAllInRoot = [contentClient folderItemsRequestWithID:BOXAPIFolderIDRoot]; 

[listAllInRoot performRequestWithCompletion:^(NSArray *items, NSError *error) {   
    if (error != nil) { 
     NSLog(@"Something bad happened when listing Box contents."); 
     return; 
    } 

    int ii,nItems = (int) [items count]; 

    for (ii=0; ii<nItems; ii++) { 
     BOXItem *currItem = [items objectAtIndex:ii]; 
     if ([[currItem name] isEqualToString:@"TestFolder"] && [currItem isFolder]) { 
      folderID = [currItem modelID]; 
      break; 
     } 
    } 
}]; 

答えて

0

Box API search endpointを使用すると、名前でフォルダをクエリできます。検索エンドポイントがフォルダを見つけた場合、応答にはフォルダのIDが含まれます。ここで

Box iOS SDKと、この呼び出しを行う方法を示す例です:

BOXContentClient *contentClient = [BOXContentClient defaultClient]; 

BOXSearchRequest *searchRequest = [contentClient searchRequestWithQuery:@"Test Folder" inRange:NSMakeRange(0, 1000)];  

[searchRequest performRequestWithCompletion:^(NSArray *items, NSUInteger totalCount, NSRange range, NSError *error) { 
// If successful, items will be non-nil and contain BOXItem model objects; otherwise, error will be non-nil. 
}];