1

こんにちは、すべてのコンテンツ管理システムからフォルダーとファイル構造全体を表示するアプリケーションを開発しています。これで、Box と SharePoint の統合が完了しました。現在、ドロップボックスを同期しようとしています。DBMetaData クラスにはプロパティがあります

BOOL thumbnailExists;
NSArray* contents;
NSString* icon;
  1. ここで最初にやりたいことは、ファイルのサムネイルをロードしたいということです。この「page_white_acrobat」のように、アイコン プロパティが文字列を返すものは 1 つもありません (URL などをダウンロードできる場所を返すと思っていました)。サムネイル)。ドロップボックス SDK を使用してサムネイルを表示する方法はありますか。また、.mp4 ファイルと .png ファイルをアップロードしました。クロムでドロップボックスを開くとサムネイルが表示されますが、SDK では、thumbnailExists プロパティは NO を返します。

  2. 次に、フォルダーのサブフォルダーとファイルの数が必要です。フォルダー DBMetaData オブジェクトのコンテンツ プロパティにアクセスしようとしましたが、nil が返されました。SDK でフォルダ内のファイル数をカウントする方法や回避策はありますか。

4

2 に答える 2

3
  1. Dropbox は、使用しているアイコンの名前を提供しているだけのようです。ダウンロードできないため、この文字列を確認し、アプリ バンドル内のリソースを使用する必要があります。

  2. DBMetadata オブジェクトのコンテンツは、実際にそのパスでメタデータをロードするリクエストを行うまで null になります。

このコードにより、サブディレクトリを使い始めることができます。

-(void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata
{
    // LOAD METADATA OF SUBDIRECTORIES
    for (DBMetadata *node in metadata.contents) {
        if (node.isDirectory) {
            [_restClient loadMetadata: node.path];
        }
    }

    // GET COUNT OF DIRECTORY CONTENTS
    if (metadata.isDirectory) {
        NSLog(@"%@ contains %d files and folders", metadata.path, metadata.contents.count);
    }
}
于 2013-05-16T16:30:38.410 に答える
2

パスまたはディレクトリの内容を一覧表示するには、DBRestClient オブジェクトの次のメソッドを呼び出す必要があります。

 - (void)loadMetadata:(NSString*)path;

次に、次のデリゲート コールバックを呼び出します (リストされたディレクトリ内の各ファイルのサムネイルをダウンロードするコードについては、メソッド本体を参照してください)。

 - (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata
 {
     for (DBMetadata *file in metadata.contents)
     {
         // 1. Use the DBMetadata * file object to do things like: add a table-view cell for the file.
         [self.filesListView addCellForFile: file];
         // 2. Request thumbnail for each file
         NSString *localThumbnailPath = [self localThumbnailPathForFile: file]; // create a local-file-path for the thumbnail
         [dbRestClient loadThumbnail: file.path ofSize:@"l" intoPath:localThumbnailPath];
     }
 }

上記のメソッドでは、loadThumbnail:ofSize:intoPath: メソッドによって、次のデリゲート コールバックが呼び出されます。

 - (void)restClient:(DBRestClient*)client loadedThumbnail:(NSString*)localPath

そこから、指定された localPath を使用して、ダウンロードしたサムネイルで UI を更新する必要があります。

于 2014-04-09T00:07:24.543 に答える