Android的 - 获得所有可用存储列表列表、Android

2023-09-06 11:09:40 作者:路还长

我下载数据从互联网我的应用程序。如果我指定内存(= Environment.getExternalStorageDirectory()),我可能有没有足够的空间面子问题。 SD卡安装地址总是不同电话到电话,所以我想,让用户选择自己的preferable位置,其中存储下载的数据。有没有什么方法,如何让所有可用的存储选项,whhich可以用吗? (通常,我想内存或SD卡插入之间做选择)。

I am downloading data into my app from the internet. If I specify internal memory (=Environment.getExternalStorageDirectory()), I may have face problem of "not enough space". Sdcard mount address always differs phone to phone, so I would like to allow user to select his preferable location, where to store downloaded data. Is there any method, how to get all available storage options, whhich can be used? (generally, I would like to choose between internal memory or inserted sdcard).

感谢

推荐答案

请检查下面的code。

Please check the below code.

计算可用内部存储内存

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;

计算总内部存储内存

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;

计算可用外部存储内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;

计算总外部存储内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;

注意:首先你需要计算即时拍摄内部存储器和展示给他/她想要下载文件的用户的

Note : First of all you need to calculate avilable internal memory and show to user where he/she wants to download file.