android获取手机内部存储空间和外部存储空间
2012-07-04 22:04
549 查看
原文: 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卡存储空间的总大小和可用大小了。
该代码片段可以让我们获取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卡存储空间的总大小和可用大小了。
相关文章推荐
- android 获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- (转)获取android手机内部存储空间和外部存储空间的参数 && 如何决定一个apk的安装位置
- Android获取手机内部存储空间和外部存储空间
- android 获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- 获取android手机内部存储空间和外部存储空间的参数 && 如何决定一个apk的安装位置
- Android获取外部和内部存储空间总大小
- Android获取外部和内部存储空间总大小和可用大小
- 获取手机内部存储空间和外部存储空间
- Android 获取内存、内部存储、外部存储空间大小
- 将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- Android之获取手机内部及sdcard存储空间的方法
- Android获取外部和内部存储空间总大小和可用大小
- Android获取外部和内部存储空间总大小和可用大小
- Android获取外部和内部存储空间总大小和可用大小
- Android 获取内存、内部存储、外部存储空间大小
- Android获取手机内部存储和外部存储