Android 获取存储空间和剩余存储空间
时间: 2023-11-10 12:21:32 浏览: 49
可以使用Android系统提供的StatFs类来获取存储空间和剩余存储空间。具体步骤如下:
1. 获取存储器的根目录路径,可以使用Environment类中的getExternalStorageDirectory()方法来获取外部存储路径,或者使用getFilesDir()方法来获取内部存储路径。
2. 创建StatFs对象,需要传入存储器路径。
3. 调用StatFs对象的getBlockSize()方法获取每个块的大小,调用getAvailableBlocks()方法获取可用的块数,调用getBlockCount()方法获取总块数。
4. 计算存储空间和剩余存储空间,可以使用以下公式:
存储空间 = 每个块的大小 * 总块数 / 1024 / 1024 / 1024;
剩余存储空间 = 每个块的大小 * 可用的块数 / 1024 / 1024 / 1024;
以下是示例代码:
```java
// 获取存储器路径
File path = Environment.getExternalStorageDirectory();
// 创建StatFs对象
StatFs stat = new StatFs(path.getPath());
// 获取每个块的大小、可用的块数、总块数
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
long totalBlocks = stat.getBlockCount();
// 计算存储空间和剩余存储空间
long totalSize = blockSize * totalBlocks / 1024 / 1024 / 1024;
long availableSize = blockSize * availableBlocks / 1024 / 1024 / 1024;
// 输出结果
Log.i("Storage", "Total size: " + totalSize + "GB");
Log.i("Storage", "Available size: " + availableSize + "GB");
```
注意:需要添加读取存储空间的权限,即在AndroidManifest.xml文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```