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

Way*_*int 2 storage android

我正在从互联网上下载数据到我的应用程序.如果我指定内部存储器(= Environment.getExternalStorageDirectory()),我可能会遇到"空间不足"的问题.Sdcard挂载地址总是因手机而异,所以我想让用户选择他喜欢的位置,在哪里存储下载的数据.有没有什么方法,如何获得所有可用的存储选项?(一般来说,我想在内部存储器或插入的SD卡之间进行选择).

谢谢

Chi*_*rag 8

请检查以下代码.

计算可用的内部存储内存

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;
Run Code Online (Sandbox Code Playgroud)

计算总内部存储内存

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
Run Code Online (Sandbox Code Playgroud)

计算可用的外部存储内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;
Run Code Online (Sandbox Code Playgroud)

计算总外部存储内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
Run Code Online (Sandbox Code Playgroud)

注意:首先,您需要计算可用的内存并向用户显示他/她想要下载文件的位置.