0

これが私の要件です。zipファイルを解凍してsdcardに保存する必要があります。ここで提供されている例を使用して、ファイルを解凍し、sdcard に保存しました。そして、その正常に動作します。ファイルをSDカードに保存する前に、問題なくZIPファイルを抽出できるように、SDカードに空き容量があるかどうかを確認する必要があります。このは、sdcard 内のフォルダーのサイズを調べるのに役立つことがわかりました。そこで、これを使用して、解凍されたファイルのサイズを調べました。

しかし、ここに私の問題があります。ご存知のように、zip を解凍するとき、ファイルを保存するために少し余分なスペースが必要になる場合があります。これは、解凍されたファイルが zip ファイル自体と同じサイズではなく、より多くのスペースが必要になるためです。これが私の質問です。

  1. SDCard の空き容量を見つけるには?
  2. SD カードの使用可能なスペースが十分でない場合にユーザーに通知できるように、解凍する前であっても、解凍されたファイルに必要な合計スペースを特定する方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

ファイル内のを反復し、それぞれでgetSize()ZipEntryを呼び出し、これを合計して近似値を取得できます。ただし、これは常に使用できるとは限りません (-1 が返される場合があります)。これに実際の zip ファイルのサイズを追加し、おそらくメガバイトに切り上げます。次のようなものを使用して、外部ストレージで利用可能な空き容量を取得できます。

StatFs stats = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
long free = ((long) stats.getBlockSize()) * stats.getAvailableBlocks();
于 2012-06-21T08:00:12.827 に答える