这是我的要求。我需要解压缩一个zip文件并将其存储在SD卡中。我现在通过使用提供的示例here.将文件解压缩并存储在SD卡中并且其工作正常。现在在将文件保存到SD卡之前,我需要找出sdcard中是否有可用空间,以便我可以毫无问题地解压缩我的zip文件。我发现这个example有助于找出sdcard中文件夹的大小。所以我用它来找出解压缩文件的大小。
但这是我的问题。我们知道,在提取zip时,我们可能需要一些额外的空间来保存文件,因为解压缩的文件与zip文件本身的大小不同,并且需要更多的空间。这是我的问题。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以在文件中迭代ZipEntry
,在每个文件上调用getSize()并添加它以获得近似值。但这并不总是保证可用(它可能返回-1)。添加到实际zip文件的大小,并可能圆满到兆字节,以确保。你可以使用这样的东西来获得外部存储空间的可用空间:
StatFs stats = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
long free = ((long) stats.getBlockSize()) * stats.getAvailableBlocks();