SD 卡相关的辅助类:

1、判断 SDCard 是否可用;

2、获取 SD 卡路径;

3、获取 SD 卡的剩余容量,单位 byte;

4、获取指定路径所在空间的剩余可用容量字节数,单位byte;

5、获取系统存储路径;

  1. import java.io.File;
  2. import android.os.Environment;
  3. import android.os.StatFs;
  4.  
  5. // SD卡相关的辅助类
  6. public class SDCardUtils
  7. {
  8. private SDCardUtils()
  9. {
  10. /* cannot be instantiated */
  11. throw new UnsupportedOperationException("cannot be instantiated");
  12. }
  13.  
  14. /**
  15. * 判断 SDCard 是否可用
  16. *
  17. * @return
  18. */
  19. public static boolean isSDCardEnable()
  20. {
  21. return Environment.getExternalStorageState().equals(
  22. Environment.MEDIA_MOUNTED);
  23.  
  24. }
  25.  
  26. /**
  27. * 获取 SD 卡路径
  28. *
  29. * @return
  30. */
  31. public static String getSDCardPath()
  32. {
  33. return Environment.getExternalStorageDirectory().getAbsolutePath()
  34. + File.separator;
  35. }
  36.  
  37. /**
  38. * 获取 SD 卡的剩余容量, 单位 byte
  39. *
  40. * @return
  41. */
  42. public static long getSDCardAllSize()
  43. {
  44. if (isSDCardEnable())
  45. {
  46. StatFs stat = new StatFs(getSDCardPath());
  47. // 获取空闲的数据块的数量
  48. long availableBlocks = (long) stat.getAvailableBlocks() - 4;
  49. // 获取单个数据块的大小(byte)
  50. long freeBlocks = stat.getAvailableBlocks();
  51. return freeBlocks * availableBlocks;
  52. }
  53. return 0;
  54. }
  55.  
  56. /**
  57. * 获取指定路径所在空间的剩余可用容量字节数,单位byte
  58. *
  59. * @param filePath
  60. * @return 容量字节 SDCard可用空间,内部存储可用空间
  61. */
  62. public static long getFreeBytes(String filePath)
  63. {
  64. // 如果是sd卡的下的路径,则获取sd卡可用容量
  65. if (filePath.startsWith(getSDCardPath()))
  66. {
  67. filePath = getSDCardPath();
  68. } else
  69. {// 如果是内部存储的路径,则获取内存存储的可用容量
  70. filePath = Environment.getDataDirectory().getAbsolutePath();
  71. }
  72. StatFs stat = new StatFs(filePath);
  73. long availableBlocks = (long) stat.getAvailableBlocks() - 4;
  74. return stat.getBlockSize() * availableBlocks;
  75. }
  76.  
  77. /**
  78. * 获取系统存储路径
  79. *
  80. * @return
  81. */
  82. public static String getRootDirectoryPath()
  83. {
  84. return Environment.getRootDirectory().getAbsolutePath();
  85. }
  86.  
  87. }

Android 开发工具类 08_SDCardUtils的更多相关文章

  1. Android开发工具类

    7种无须编程的DIY开发工具 你知道几个? 现如今,各种DIY开发工具不断的出现,使得企业和个人在短短几分钟内就能完成应用的创建和发布,大大节省了在时间和资金上的投入.此外,DIY工 具的出现,也帮助 ...

  2. android开发工具类之获得WIFI IP地址或者手机网络IP

    有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...

  3. android开发工具类总结(一)

    一.日志工具类 Log.java public class L { private L() { /* 不可被实例化 */ throw new UnsupportedOperationException ...

  4. Android 开发工具类 35_PatchUtils

    增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...

  5. Android 开发工具类 13_ SaxService

    网络 xml 解析方式 package com.example.dashu_saxxml; import java.io.IOException; import java.io.InputStream ...

  6. Android 开发工具类 06_NetUtils

    跟网络相关的工具类: 1.判断网络是否连接: 2.判断是否是 wifi 连接: 3.打开网络设置界面: import android.app.Activity; import android.cont ...

  7. Android 开发工具类 03_HttpUtils

    Http 请求的工具类: 1.异步的 Get 请求: 2.异步的 Post 请求: 3.Get 请求,获得返回数据: 4.向指定 URL 发送 POST方法的请求. import java.io.Bu ...

  8. Android 开发工具类 19_NetworkStateReceiver

    检测网络状态改变类: 1.注册网络状态广播: 2.检查网络状态: 3.注销网络状态广播: 4.获取当前网络状态,true为网络连接成功,否则网络连接失败: 5.注册网络连接观察者: 6.注销网络连接观 ...

  9. Android 开发工具类 27_多线程下载大文件

    多线程下载大文件时序图 FileDownloader.java package com.wangjialin.internet.service.downloader; import java.io.F ...

随机推荐

  1. Spring MVC controller 被执行两次

    interceptor 被执行两次 后来发现 时controller被执行两次 后来发现是jsp页面有个: <img src="#" > 导致被执行两次. 解决方案:去 ...

  2. Creating a Simple Web Service and Client with JAX-WS

    Creating a Simple Web Service and Client with JAX-WS 发布服务 package cn.zno.service.impl; import javax. ...

  3. TurtleBot教程

    TurtleBot TurtleBot combines popular off-the-shelf robot components like the iRobot Create, Yujin Ro ...

  4. Android传感器——加速度传感器

    步骤如下: 1. 调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorManager,SensorManager对象代表系统的传感器 ...

  5. Perf -- Linux下的系统性能调优工具,第 1 部分

    Perf 简介 Perf 是用来进行软件性能分析的工具. 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计.它不但可以分析指定应用程序的性能问题 (per t ...

  6. hdu 2086 A1 = ?(数学题)

    转载链接 因为:Ai=(Ai-1+Ai+1)/2 - Ci,        A1=(A0  +A2  )/2 - C1;       A2=(A1  +  A3)/2 - C2 , ... => ...

  7. chrome 概述

    Chrome, Firebug, Filddle 调试:http://www.zhihu.com/question/35667558/answer/63936233 Chrome开发者工具系列: ht ...

  8. DBCC--CHECKDB--不可被替代的原因

    CHECKSUM不能发现的两类问题 1. 发生在内存中的页错误,如内存损坏+第三方程序修改等 2. MS SQL Server潜在BUG导致的逻辑错误,该类错误可以使用重建索引或重建约束来修复 CHE ...

  9. Wpf中显示Unicode字符

    1. 引言 今天在写一个小工具,里面有些字符用Unicode字符表示更合适.但是一时之间却不知道怎么写了.经过一番查找,终于找到了办法.记到这里,一是加深印象,二则以备查询. 2. C#中使用Unic ...

  10. 获取form表单元素值的4种方式

    <html><head><title></title><script type="text/javascript"> f ...