Asynctaskを使用してURLからファイルをダウンロードしようとしています。 doInBackground()メソッドでは、このようにファイルサイズを取得します。URLのファイルサイズが、ストレージ内のダウンロードファイルと異なる
lenghtOfFile = conection.getContentLength();
これは整数値を返します。今、ダウンロードが続けられ、ファイルは完全にダウンロードされ、sdcardに書き込まれます。
私のpostExecute()では、ファイルのサイズをダウンロードしたファイルのサイズとURLから比較したいという問題があります。
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//check if the file was download and know how much of it
//was downloaded, so as to update ui accordingly
if(file.exists()){
Log.e("apiFileSize", String.valueOf(lenghtOfFile));
Log.e("downloadFileSize", String.valueOf(file.length()));
//check if the file was completely downloaded
if(lenghtOfFile == file.length()){
....
あなたは、私は両方の値を記録し、彼らはダウンロードが最後まで走り、ファイルが完全にダウンロードされていても同じではありません見ることができるように。ローカルストレージ(sdcard)からのファイルは、URLのファイルサイズより大きくなります。私は彼らが平等であることを期待しています、なぜこれが起こっていますか?私に何ができる?
以下はログの結果です。
09-23 22:44:48.203 26594-26594/com.mobile.soullounge E/apiFileSize﹕ 1298573
09-23 22:44:48.204 26594-26594/com.mobile.soullounge E/downloadedFileSize﹕ 2696392
ありがとうございます。
以下の回答はあなたのために機能しますか?もし受け入れる気があるなら? –