7

iPhone アプリへの dropBox の統合に関する非常に基本的な質問です。

DropBoxSDK のセットアップに従ったところ、すべて正常に動作しました。自分のアカウントにログオンして、リンクすることができます。だから私はすべてを正しく設定しました。

これを使用して、単純に dropBox からファイルをロードし、再度保存したいと思います。私のDropBoxの「Example」フォルダにある「example.txt」と呼ばれる1つのファイル(簡単にするため)だけを同期したいと考えてください。同じ「example.txt」が、iPhone のアプリのドキュメント ディレクトリにローカルに保存されます。

dropBox の readme ファイルは、次のコードを漠然と示唆しています。

2. Make an request on the rest client:

   [[self restClient] loadMetadata:@"/"];

3. Implement the DBRestClientDelegate methods needed to get the results of the
   particular call you made:

   - (void)restClient:(DBRestClient*)client 
       loadedMetadata:(DBMetadata*)metadata {

       NSLog(@"Loaded metadata!");
   }

   - (void)restClient:(DBRestClient*)client 
       metadataUnchangedAtPath:(NSString*)path {

       NSLog(@"Metadata unchanged!");
   }

   - (void)restClient:(DBRestClient*)client 
       loadMetadataFailedWithError:(NSError*)error {

       NSLog(@"Error loading metadata: %@", error);
   }

だから私の(できれば)簡単な質問は、どうすればできるかです:

  • 私のドロップボックスにサンプルフォルダがあるかどうかを確認してください
  • そうでない場合は、作成し、アプリ ドキュメントの example.txt をこのサンプル フォルダーに保存します。
  • example.txt を読み込む
  • プログラムが終了したら、example.txt を DropBox に保存します。

Web サイトの DropBox ドキュメントで、これらの非常に基本的な手順に対する答えを実際に見つけることができません。彼らが提供した例は、あまりにも紛らわしいと思います...特に、私が見る限り、ファイルをロードして保存することだけを目的としているためです。

これについてどうすればよいかについての助けや提案に感謝します。

4

2 に答える 2

15

OK、example.txt ファイルを保存する次の方法を見つけました。

-(void) DBupload:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];

    [self.restClient uploadFile:@"NoteBook.txt" toPath:@"/example" fromPath:filePath];
}

フォルダーを作成する必要はありません。フォルダーが存在しない場合は、Dropbox が自動的に作成します。

これは、同じファイル フォーム ドロップボックスをダウンロードするためのものです。

-(void) DBdownload:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];
    NSError *error;

    [self.restClient loadFile:@"/example/Example.txt" intoPath:filePath];

    if (filePath) { // check if file exists - if so load it:
        NSString *tempTextOut = [NSString stringWithContentsOfFile:filePath
                                                          encoding:NSUTF8StringEncoding
                                                             error:&error];
    }
}

同様の質問に苦しんでいる場合、これが役立つことを願っています。

于 2011-04-16T19:43:46.620 に答える
2

DBdownload 関数では、DBRestClientDelegate メソッドの loadedFile および loadFileFailedWithError を実装することで、チェックをスキップできます。

于 2011-04-17T11:36:27.687 に答える