2016-07-19 9 views

答えて

0

そして、ここに私のコードであることを願っています:

// pass path as: @"backup/" 
- (void)listAmazonFoldersAtPath:(NSString *)path 
        completion:(void (^)(BOOL success, NSMutableArray *filesArray))completionBlock 
{ 

    NSMutableArray *collection = [[NSMutableArray alloc] init]; 

    AWSS3 *s3 = [AWSS3 defaultS3]; 

    AWSS3ListObjectsRequest *listObjectsRequest = [AWSS3ListObjectsRequest new]; 
    listObjectsRequest.prefix = path; 
    listObjectsRequest.delimiter = @"/"; 

    listObjectsRequest.bucket = kAmazonS3Bucket; 
    [[s3 listObjects:listObjectsRequest] continueWithBlock:^id(AWSTask *task) { 
     if (task.error) { 
      NSLog(@"listObjects failed: [%@]", task.error); 
      completionBlock(NO, collection); 
     } else { 
      AWSS3ListObjectsOutput *listObjectsOutput = task.result; 
      for (AWSS3CommonPrefix *s3ObjectPrefix in listObjectsOutput.commonPrefixes) { 
       if(s3ObjectPrefix.prefix && s3ObjectPrefix.prefix.length > 0){ 
        NSString *fileName = [[s3ObjectPrefix.prefix componentsSeparatedByString:@"/"] lastObject]; 
        if (fileName && fileName.length > 0) { 
         [collection addObject:s3ObjectPrefix.prefix]; 
        } 
       } 
      } 

      completionBlock(YES, collection); 
      NSLog(@"Current folders: %@", collection); 

     } 
     return nil; 
    }]; 

} 

私はそれが他人を助けることを願っています。

注:また、サブフォルダの一覧を表示したい場合は行をコメントすること自由に感じなさい:

listObjectsRequest.delimiter = @"/"; 
関連する問題