Dropbox SDKを使ってみよう(3-2.ファイル操作)


Dropbox SDKを使ってみよう(3-1.認証情報の利用/アップロード)では認証の方法とアップロードについて解説しました。

今回はアップロードしたファイルの情報を取得する方法やファイルをダウンロードする方法を紹介します。

詳細は以下から。

ファイル/ディレクトリの情報を取得する

まずはディレクトリの情報を取得してみましょう。

ファイルやディレクトリの情報はDropboxAPIクラスのmetadataメソッドを使用します。

このメソッドの引数には以下の内容を設定します。

[table “205” not found /]

以下はルートディレクトリの情報を取得し、格納されているファイル/ディレクトリをToastで表示するサンプルです。

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Entry diEntry = mDBApi.metadata("/", 10, null, true, null);
            List<Entry> fileList = diEntry.contents;
            for (final Entry entry : fileList) {
                mHandler.post(new Runnable() {

                    @Override
                    public void run() {
                        Toast.makeText(FileActionMenuActivity.this, entry.path, Toast.LENGTH_LONG).show();
                    }
                });

            }
         } catch (DropboxException e) {
             Log.e(FileActionMenuActivity.this.getPackageName(), e.toString());
         }
     }
}).start();

6行目でmetadataメソッドを使用してディレクトリの情報を取得しています。

ディレクトリの情報はEntryクラスオブジェクトに格納され、戻り値として取得します。

Entryクラスはフィールドにファイル/ディレクトリの情報を格納しているクラスです。

Entryクラスの主なフィールドは以下の表を参照してください。

[table “206” not found /]

13行目でEntryクラスのpathフィールドから格納されているファイル/ディレクトリのフルパスを取得しています。

ファイルをダウンロードする

ファイルをダウンロードするにはDropboxAPIクラスのgetFileメソッドを使用します。

getFileメソッドの引数は以下のとおりです。

[table “207” not found /]

以下は”test.text”という名前のファイルをダウンロードし、ファイルの内容をToastで出力するサンプルです。

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            mDBApi.getFile("/test.txt", null, outputStream, null);
            mHandler.post(new Runnable() {

                @Override
                public void run() {
                    String fileText = new String(outputStream.toByteArray());
                    Toast.makeText(FileActionMenuActivity.this, fileText, Toast.LENGTH_LONG).show();
                }
            });
        } catch (DropboxException e) {
            Log.e(FileActionMenuActivity.this.getPackageName(), e.toString());
        }
    }
}).start();