1

Amazon s3 サーバーからファイルをダウンロードする ASyncTask があるアプリを開発しました。関連するファイルのサイズが非常に大きいため、ダウンロードが発生したときにプログレス バーを表示する必要があります。らせん状のプログレス バーは、回転し続けてユーザーを苛立たせると見栄えがよくありません。ダウンロードするファイルのサイズを知る必要がある水平スタイルの進行状況バーを使用する必要があります。Amazon s3からダウンロードする前に、ファイルサイズを知る方法を知っている人はいますか?

これは私が使用したダウンロードコードです..

    @Override
    protected Void doInBackground(Void... params) {

        TransferManager manager = new TransferManager(access);
        File file = new File(Environment.getExternalStorageDirectory()+"/Downloads", downFile);
        fileDownloaded = "/Downloads/"+ downFile;
        file.setWritable(true);
        Download down = manager.download("files", fileToDown, file );
        try {
            down.waitForCompletion();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

「downFile」は、外部ディレクトリに保存するファイルの場所です。「fileToDown」は、ダウンロードするサーバー上のファイル パスです。「/Downloads/」は、デバイスにファイルを保存するために作成した新しいディレクトリです。

4

1 に答える 1

1

このようなコードを使用していると思いますが、

        URL url = new URL(f_url[0]);
        URLConnection conection = url.openConnection();
        // getting file length
        int lengthOfFile = conection.getContentLength();

        // input stream to read file - with 8k buffer
        InputStream input = new BufferedInputStream(url.openStream(), 8192);

メソッドgetContentLength()はファイルのサイズを返します。

更新 1:

TransferManager と Download クラスについては、Amazon の Java ドキュメントを確認しました。進行状況を表示し、それらを使用してみるのに役立つメソッドとリスナーがありました。

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/Transfer.html#getProgress()

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferProgress.html

getProgress() //This will return TransferProgress object. See the links above

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/Transfer.html#addProgressListener(com.amazonaws.services.s3.model.ProgressListener)

addProgressListener

これにより、progressListener をセットアップできると思います。

更新 2:

TransferProgress は、ダウンロードの進行状況に関する一連の情報を持つオブジェクトです。転送されたバイト数、転送された合計バイト数、および転送率が表示されます。メソッドの詳細を見てください。

ここに画像の説明を入力

于 2013-08-26T13:08:19.777 に答える