android获取手机内部存储空间和外部存储空间
来源:互联网 发布:淘宝海报图片 编辑:程序博客网 时间:2024/04/27 15:28
原文:http://blog.163.com/hero_213/blog/static/39891214201162123236660/
该代码片段可以让我们获取internal和external的存储空间大小。
import java.io.File;import android.os.Environment;import android.os.StatFs;public class StorageUtil {private static final int ERROR = -1;/*** SDCARD是否存*/public static boolean externalMemoryAvailable() {return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);}/*** 获取手机内部剩余存储空间* @return*/public static long getAvailableInternalMemorySize() {File path = Environment.getDataDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long availableBlocks = stat.getAvailableBlocks();return availableBlocks * blockSize;}/*** 获取手机内部总的存储空间* @return*/public static long getTotalInternalMemorySize() {File path = Environment.getDataDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long totalBlocks = stat.getBlockCount();return totalBlocks * blockSize;}/*** 获取SDCARD剩余存储空间* @return*/public static long getAvailableExternalMemorySize() {if (externalMemoryAvailable()) {File path = Environment.getExternalStorageDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long availableBlocks = stat.getAvailableBlocks();return availableBlocks * blockSize;} else {return ERROR;}}/*** 获取SDCARD总的存储空间* @return*/public static long getTotalExternalMemorySize() {if (externalMemoryAvailable()) {File path = Environment.getExternalStorageDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long totalBlocks = stat.getBlockCount();return totalBlocks * blockSize;} else {return ERROR;}}}
1.硬件上的 block size, 应该是"sector size",linux的扇区大小是512byte
2.有文件系统的分区的block size, 是"block size",大小不一,可以用工具查看
3.没有文件系统的分区的block size,也叫“block size”,大小指的是1024 byte
4.Kernel buffer cache 的block size, 就是"block size",大部分PC是1024
5.磁盘分区的"cylinder size",用fdisk 可以查看。
我们这里的block size是第二种情况,一般SD卡都是fat32的文件系统,block size是4096.
这样就可以知道手机的内部存储空间和sd卡存储空间的总大小和可用大小了。
0 0
- android获取手机内部存储空间和外部存储空间
- android 获取手机内部存储空间和外部存储空间
- android 获取手机内部存储空间和外部存储空间
- 获取android手机内部存储空间和外部存储空间的参数
- android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- Android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取内部外部存储空间
- Android存储空间——外部存储空间和内部存储空间
- Android获取外部和内部存储空间总大小
- 获取android手机内部存储空间和外…
- Android 获取手机存储空间
- Android获取内部和SDCard的存储空间
- Android 获取内存、内部存储、外部存储空间大小
- 3.23作业
- Server2012R2下安装intel 82579v网卡驱动
- c++项目练习
- 数组 3Sum
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- android获取手机内部存储空间和外部存储空间
- ibatis中使用like模糊查询
- UNITY3D 使用 litjson 制作数据表
- Reduce对Pig作业性能的影响
- android动画坐标定义
- Android 自定义的圆形变化ProgressBar
- [转]一个手机游戏的服务器架构
- 学习C指针的心得随笔
- Leetcode:Palindrome Partitioning